知识点讲解


系统全面讲解Linux操作系统基础操作、命令使用及文件管理


前言

Linux作为当今最流行的操作系统之一,广泛应用于服务器、云计算、嵌入式设备等领域。无论你是开发者、运维工程师,还是对技术充满好奇的爱好者,掌握Linux操作基础都是迈向技术进阶的重要一步。

本文基于《Linux操作基础》课程课件整理而成,涵盖了Linux系统概述、基本操作、命令使用、文件与目录管理、文件操作命令等核心内容。希望通过本文,能够帮助你快速建立起对Linux系统的全面认识。

一、认识Linux系统

1.1 Linux系统简介

Linux是一种类Unix操作系统,最初由Linus Torvalds于1991年开发。与Windows和macOS不同,Linux是完全开源的操作系统,遵循GPL协议,任何人都可以自由使用、修改和分发。Linux以其高稳定性、高安全性和高度可定制性而闻名,是全球服务器市场的主导操作系统。

1.2 Windows、Linux、macOS 对比

以下是三大主流操作系统在架构、开放性、适用场景等方面的详细对比:

对比维度

Windows

Linux

macOS

架构

混合内核(结合微内核和宏内核特性)
面向通用计算设计,兼容性强

宏内核(大内核)
高度模块化,支持深度定制

混合内核(XNU,基于Mach和BSD的混合架构)
基于Unix(BSD衍生)

开放性

闭源(微软主导开发)
部分组件开源(.NET Core、PowerShell)

完全开源(GPL协议)
社区驱动,可自由修改和分发

闭源(苹果完全控制)
基于开源项目但整体封闭

适用场景

普通用户(办公、娱乐)
企业环境(AD域、Office兼容)
游戏(DirectX支持)

服务器/云计算(高稳定性)
开发者/极客(工具链丰富)
嵌入式/IoT(轻量化定制)

创意设计(视频/音频编辑)
开发者(Unix工具链+苹果生态)
高端消费市场

优势领域

商业软件兼容性
用户友好的图形界面
广泛的硬件驱动支持

高度可定制性
安全性高
免费且社区支持强大

软硬件深度整合(M系列芯片优化)
专业创意工具生态
Unix工具链

局限性

闭源导致灵活性低
资源占用较高
开发者工具支持较弱

图形界面碎片化
商业软件支持较少
新手学习曲线陡峭

硬件封闭(仅限苹果设备)
价格昂贵
企业级功能较弱

二、Linux基本操作

2.1 系统登录方式

Linux系统支持多种登录方式,满足不同场景下的使用需求:

控制台登录:通过物理连接到计算机的键盘和显示器直接登录系统,这是最底层的登录方式。

图形界面登录:系统默认启动1个图形登录界面,登录后进入图形桌面环境(如GNOME、KDE等)。

字符界面登录:系统默认启动5个字符登录界面(tty2-tty6),登录后进入字符命令行界面。可以通过 Ctrl+Alt+Fn 在不同终端之间切换。

远程登录:通过网络使用SSH协议从远程终端登录Linux系统,通常进入字符命令行界面。这是服务器管理中最常用的方式。

提示:Linux系统严格区分大小写,用户名、口令、文件名等均需注意大小写

2.2 终端与控制台

在Linux中,用户通过终端(Terminal)或控制台(Console)与系统进行交互。理解两者的区别非常重要:

类型

设备文件

访问方式

用途

控制台(Console)

/dev/console

物理键盘/显示器

系统底层维护、内核消息输出

虚拟终端(tty)

/dev/ttyN

本地Ctrl+Alt+Fn

多任务本地命令行操作

伪终端(pty)

/dev/pts/N

远程SSH或终端模拟器

远程登录、图形界面中的终端窗口

关键区别:控制台是物理终端,虚拟终端是本地多任务分发的模拟终端,而伪终端用于远程或图形环境。远程登录时,用户始终通过伪终端(pts)与系统交互。

2.3 运行级别

Linux系统有多个运行级别(Run Level),每个级别代表系统的不同工作状态。理解运行级别对于系统管理和故障排除至关重要。

init运行级别

systemd目标

作用说明

0

poweroff.target

系统停机状态(关机)

1

rescue.target

单用户工作状态,root权限,用于系统维护

2

multi-user.target

多用户状态(没有NFS)

3

multi-user.target

多用户状态(有NFS),控制台命令行模式

4

未使用

留给用户自定义

5

graphical.target

X11图形界面模式(GUI)

6

reboot.target

系统正常关闭并重新启动

查看当前运行级别和切换运行级别的常用命令:

runlevel                    # 查看当前运行级别
init [0123456]              # 切换运行级别

在CentOS 7及以上版本中,使用systemd替代了传统的init进程:

systemctl set-default graphical.target   # 设置图形界面为默认
systemctl set-default multi-user.target  # 设置字符界面为默认

Linux运行级别与systemd目标对应关系图

2.4 远程登录

远程登录是Linux系统管理中最常用的功能之一。Linux系统提供了多种远程登录方式:

SSH远程登录(Linux → Linux)

SSH(Secure Shell)是Linux系统中最安全的远程登录方式。通过SSH连接,用户在网络上传输的口令和数据都是经过加密的,比传统的telnet远程登录更加安全。

ssh -l username 远程主机IP
# 或
ssh username@远程主机IP

# 例如:
ssh osmond@192.168.1.100

SSH服务管理命令:

systemctl status sshd    # 查看SSH服务状态
systemctl start sshd     # 启动SSH服务
systemctl stop sshd      # 停止SSH服务

SSH远程登录终端示例

远程登录软件(Windows → Linux)

在Windows系统下,可以使用以下软件远程连接Linux系统:

PuTTY:一款免费、绿色的终端模拟器,支持SSH、Telnet等连接方式。界面简洁,配置简单,是Windows下最流行的SSH客户端之一。

PuTTY配置界面

PuTTY软件图标

SecureCRT:一款功能强大的终端仿真程序,支持SSH、Telnet、Serial等多种协议。相比PuTTY功能更丰富,支持标签页、脚本等高级功能。

SecureCRT软件图标

2.5 退出系统

在字符终端中,可以使用以下命令退出当前登录会话:

exit
Ctrl + D
logout

在图形界面中,点击"注销"按钮即可退出系统。

2.6 关闭和重启系统

在命令行界面中,可以使用以下命令关闭或重启系统(需要root权限):

shutdown now          # 立即关机
shutdown -r now       # 立即重启
halt                  # 关机
reboot                # 重启
init 0                # 关机
init 6                # 重启

另外,在控制台按 Ctrl+Alt+Del 键也可以直接重启系统。

三、Linux命令基础

3.1 命令格式

Linux命令的基本格式如下:

Command [-/--options] [arguments]

其中:

Command:命令名,是命令的核心部分。

Options(选项):可省略。单个字符选项前面用"-"提示,多个单字符选项可以合并;一个单词选项前面用"--"提示,如 --help。

Arguments(参数):可省略。可以是文件或目录,可以有多个操作对象。

需要注意的是,并不是所有命令都遵循上述格式,而且Linux命令严格区分大小写!

3.2 常用命令实例

以下是一些常用的Linux命令示例:

ls              # 列出当前目录文件
ls -lRa /home   # 递归列出/home目录下所有文件详情
cat abc xyz     # 显示多个文件内容
ls --help       # 显示ls命令帮助信息
su -            # 切换到root用户
passwd          # 修改密码
date            # 显示当前日期时间
cal 2011        # 显示2011年日历

3.3 命令编辑快捷键

掌握以下快捷键可以大大提高命令行操作效率:

快捷键

功能说明

Enter / Ctrl+J / Ctrl+M

提交命令

Backspace / Delete / Ctrl+H

删除字符

\

续行符(命令太长时换行输入)

Tab

命令补齐(自动补全命令或文件名)

↑ / ↓

翻找历史命令

→ / ←

前后移动光标

Ctrl+A

跳转到命令行行首

Ctrl+E

跳转到命令行行尾

Ctrl+U

删除行首到光标位置的字符

Ctrl+K

删除光标位置到行尾的字符

Ctrl+L / clear

清理屏幕

3.4 联机帮助

Linux提供了多种获取命令帮助的方式:

--help选项:大部分命令都提供 --help 选项,用于显示该命令的简要帮助信息。例如输入 ls --help 即可查看ls命令的用法说明。

man命令:查看命令的联机手册页(manual page),提供命令的详细文档。常用操作键:q退出、Enter逐行下翻、Space逐页下翻、b往上翻一页、/string搜索字符串、n寻找下一个匹配。

info命令:查看命令的超文本说明书,信息比man更详细。

在线手册资源:

Linux在线中文手册:http://linux.51yip.com/
Linux菜鸟教程:https://www.runoob.com/linux/

3.5 输入/输出重定向

在Linux中,每个命令执行时都会产生输入和输出。默认情况下:

类型

文件描述符

默认情况

标准输入(STDIN)

0

从键盘获得输入

标准输出(STDOUT)

1

输出到屏幕(控制台)

错误输出(STDERR)

2

输出到屏幕(控制台)

输入/输出重定向可以改变命令输入的来源和输出的去向,是Linux命令行的核心概念之一。

Linux输入/输出重定向概念图

输出重定向

输出重定向用于改变命令标准输出的去向,将其保存到文件中而不是显示在屏幕上:

命令

功能说明

command >filename

把标准输出重定向到新文件中(覆盖原内容)

command 1>filename

同上

command >>filename

把标准输出追加到文件中(保留原内容)

command 2>filename

把标准错误重定向到新文件中

command 2>>filename

把标准错误追加到文件中

command &>>filename

将标准输出与错误输出共同追加到文件中

输出重定向流程示意图

输出重定向类型详解

合并输出重定向

使用 "&>" 可以将标准输出和错误输出同时重定向到同一个文件,相当于同时执行了 "1>file" 和 "2>file"。

输入重定向

输入重定向用于改变命令的输入来源,让命令从文件中读取输入而不是从键盘:

命令

功能说明

command <filename

以filename文件作为标准输入

command 0<filename

同上

输入重定向示意图

3.6 管道运算符

管道运算符(|)是Linux中最强大的功能之一。它可以将前面命令的标准输出直接传递给后面的命令作为输入,从而实现命令之间的数据流通。

格式:命令1 | 命令2

作用:命令1的正确输出作为命令2的操作对象(输入)。通过管道,可以将多个简单命令组合成强大的数据处理流水线。

管道运算符工作原理图

管道常用示例:

ls -la | more          # 分页显示目录列表
ps aux | grep nginx    # 查找nginx进程
cat file.txt | sort    # 对文件内容排序
cat file.txt | wc -l   # 统计文件行数

四、Linux文件与目录

4.1 文件命名规则

Linux文件命名有以下规则:

文件名的最大长度是255个字符,通常由字母、数字、"."、"_" 和 "-" 组成。以"."开头的文件是隐含文件(隐藏文件),在默认ls命令下不会显示。

文件名中不能含有"/"字符和空字符"\0",因为它们对Linux内核具有特殊含义。其中"/"表示根目录或路径分隔符。

文件名中不应含有以下Shell元字符,因为它们对Shell具有特殊含义:; | < > ` " ' $ % & * ? ! \ ( ) [ ]

4.2 通配符

通配符用于在文件名匹配时增加灵活性,常用的通配符有:

通配符

说明

?

匹配任意的单个字符

*

匹配0或多个任意字符(隐含文件的前缀"."除外)

[ ]

匹配方括号中列出的字符集合中的任何单个字符

字符集合的描述方法:

列举:逐个列出各个字符,如 [abc]

范围:用 - 描述字符范围,如 [a-z]

排除:用 ! 排除字符,如 [!A-Z]

通配符应用举例:

echo ch*          # 匹配所有以ch开头的文件
echo ch3.*        # 匹配ch3.开头的文件
echo ch?.*        # 匹配ch后跟一个任意字符的文件
echo ch??.*       # 匹配ch后跟两个任意字符的文件
echo ch[146]*     # 匹配ch1、ch4、ch6开头的文件
echo ch*.1        # 匹配以.1结尾的文件

4.3 文件类型

Linux系统中有多种文件类型,通过 ls -l 命令的输出可以识别文件类型:

普通文件(-):如文本文件、二进制文件、图片文件等。
目录文件(d):即文件夹,用于组织其他文件。
符号链接文件(l):即软链接,类似于Windows的快捷方式。
块设备文件(b):如硬盘、光驱等块设备。
字符设备文件(c):如终端、打印机等字符设备。
管道文件(p):用于进程间通信的命名管道。
套接字文件(s):用于网络通信的套接字文件。

4.4 文件归属关系

Linux将文件的使用者分为以下四类:

文件属主(user):文件的所有者(通常是建立文件的人),用其用户名标识。

文件属组(group):文件属主所在的用户组,用组名标识。

其他人(others):除文件属主和属组用户外的其它系统用户。

所有人(all):系统的所有用户。

4.5 文件访问权限

Linux对文件定义了三种存取权限:

权限

对普通文件

对目录

读权限(r)

可读取其内容

可列出其中的文件列表

写权限(w)

可修改其内容

可在其中建立、删除文件,或修改文件名

执行权限(x)

可执行其内容

可进入该目录(cd)

无权限(-)

不能对其作相应操作

不能对其作相应操作

Linux对每个文件区分了4类用户,对各类用户可分别设置存取权限:文件属主(u)、文件属组(g)、其他用户(o)和所有用户(a)。root用户不受存取权限的限制。

ls -l 命令输出示例(文件权限详解)

4.6 文件权限表示法

Linux文件权限有两种表示方法:

数字表示法:用数字1或0来表示u、g、o权限的9位字符。有相应权限的位为1,无权限的位为0,形成一个9位长的二进制数,用3位八进制数字来表示。例如 755 表示属主有rwx权限,属组和其他人有r-x权限。

字符表示法:用十个字符表示一个文件的类型和权限。第一个字符表示文件类型,其余9位表示u、g、o三组用户的r、w、x权限,若没有该权限则用"-"表示。例如:-rw-rw-r-- 表示普通文件,属主和属组有读写权限,其他人只有读权限。

文件掩码(umask)决定了新建文件的默认权限:

umask                    # 查看当前文件掩码
# 新建文件的默认权限 = 666 - umask(非可执行文件)
# 新建目录的默认权限 = 777 - umask

umask命令执行示例

4.7 目录权限的作用

目录的权限与普通文件有所不同,理解目录权限对于文件管理非常重要:

目录权限

作用

r(读)

可以对目录进行查看(ls)

w(写)

可以在目录内部进行文件的新建、删除、修改等操作

x(执行)

可以进入该目录(cd)

4.8 文件的其它属性

Linux文件除了权限和归属外,还有以下重要属性:

时间标签:修改时间(mtime)- 文件内容被修改的最后时间;访问时间(atime)- 文件最近一次被访问的时间;变更时间(ctime)- 文件属性变更的最近时间。

文件大小:以字节为单位的文件大小。

文件的连接数:此文件硬链接的数目。

查看方法:

stat filename    # 查看文件的详细属性信息

4.9 Linux目录结构

Linux的文件系统采用树形目录结构,根目录为"/"。所有文件和目录都挂载在根目录下。理解Linux的目录结构是高效使用Linux系统的基础。

Linux文件系统目录结构树

Linux主要目录说明:

目录

说明

/bin

存放基本命令程序(任何用户都可以调用)

/boot

存放系统启动时所读取的文件,包括系统核心文件

/dev

存放设备文件接口,如打印机、硬盘等外围设备

/etc

存放与系统设置和管理相关的文件,如用户帐号、密码等

/home

存放用户专属目录(用户主目录)

/lib

存放一些共享的函数库

/mnt

一个空目录,供管理员挂载临时文件系统

/proc

虚拟文件系统目录,是系统内存的映射,可直接访问获取系统信息

/root

系统管理员(超级用户root)的专用目录

/sbin

存放系统管理员使用的系统管理程序

/tmp

临时目录,供任何用户存放临时文件

/usr

存放系统的应用程序(类似Windows的Program Files)

4.10 路径概念

路径是文件在目录树中所处的位置。路径名是关于文件的名称及位置的完整描述,由若干个文件名构成,中间用"/"分开。路径名是唯一的。

绝对路径名:从根目录沿目录树到文件所在目录的路径名,以"/"开头。例如 /usr/bin/zip

相对路径名:从当前目录沿目录树到文件所在目录的路径名,不以"/"开头。例如 当前目录是/usr,则zip的相对路径名为 bin/zip

当前工作目录用"."表示,当前目录的父目录用".."表示。用户的主目录用"~"表示,默认主目录是/home/用户名。

五、Linux文件操作命令

5.1 目录操作命令

Linux提供了丰富的目录操作命令,以下是常用的目录操作命令:

命令

功能

ls

显示文件和目录列表

cd

切换目录

pwd

显示当前工作目录

mkdir

创建目录

rmdir

删除空目录

tree

显示目录树

ls命令

ls命令用于显示文件或目录信息。对于目录,该命令将列出其中的所有子目录与文件;对于文件,ls将输出其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序排序。

ls -l /etc          # 以长格式显示/etc目录内容
ls -a               # 显示所有文件(包括隐藏文件)
ls -la /home        # 长格式显示/home目录下所有文件

pwd和cd命令

pwd命令用于显示当前工作目录的绝对路径。cd命令用于改变当前目录。不指定目录时,cd命令会进入用户主目录。

pwd                 # 显示当前目录绝对路径
cd .                # 停留在当前目录
cd ..               # 进入父目录
cd /etc/yum         # 切换到指定目录
cd -                # 回到上一次所在的目录
cd                  # 回到用户主目录

mkdir和rmdir命令

mkdir命令用于创建新目录。要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录名。

mkdir /home/jsj/mydir          # 以绝对路径创建空目录
mkdir -pv test1/test11          # 递归创建多级目录并显示信息
rmdir -p dir1/dir2              # 递归删除空目录

mkdir/rmdir命令使用提示

5.2 文件显示命令

Linux提供了多种文件显示命令,适用于不同场景:

命令

功能说明

cat /etc/passwd

显示文件/etc/passwd的内容

cat -n /etc/passwd

滚屏显示文件内容,并显示行号

more /etc/passwd

分屏显示文件内容(空格键下翻,q退出)

more +10 /etc/passwd

从第10行开始分屏显示

less /etc/passwd

分屏显示文件内容(支持前后翻页)

head -4 myalllist

显示文件前4行的内容

tail -n 4 myalllist

显示文件后4行的内容

tail -n +10 myalllist

显示从第10行到文件尾的内容

tail -f /var/log/messages

实时跟踪显示日志文件结尾内容

5.3 文件复制命令(cp)

cp命令用于复制文件或目录。若复制的目标文件已存在,则被覆盖。可以将多个源文件复制到目标目录中,也可以将源目录复制为指定的目标目录。

常用选项:

-R/-r:递归地复制目录及目录内的所有项目

-f:强制复制,不管目标是否存在

-i:交互式复制,覆盖文件前需要确认

cp命令使用举例:

cp file1 file2                    # 将file1复制为file2
cp A/dir/file1 B/dir/             # 将文件复制到另一个目录
cp /bin/cpio ~/bin/               # 复制文件到主目录bin目录
cp abc bcd mydoc/                 # 将多个文件复制到mydoc目录
cp A/dir/f* B/dir/                # 复制以f开头的文件
cp file{1,2,3} B/dir/             # 复制file1、file2、file3
cp -r A/dir/ B/dir/               # 递归复制整个目录

5.4 文件移动与重命名命令(mv)

mv命令可以用来移动文件或者将文件改名(move/rename files),是Linux系统下常用的命令,经常用来备份文件或者目录。

mv file1 file2          # 将file1重命名为file2
mv file1 /tmp/          # 将file1移动到/tmp目录
mv file1 file2 file3 dir/  # 将多个文件移动到dir目录
mv * ../                # 移动当前文件夹下所有文件到上一级目录

5.5 文件删除命令(rm)

rm命令用于删除一个目录中的一个或多个文件,也可以将某个目录及其下的所有文件及子目录均删除。rm是一个危险的命令,使用的时候要特别当心!

常用参数:

-f, --force:忽略不存在的文件,从不给出提示

-i, --interactive:进行交互式删除(每次删除前确认)

-r, -R, --recursive:指示rm将参数中列出的全部目录和子目录均递归地删除

使用建议:

rm -i file1             # 交互式删除file1(推荐)
rm -rf dir/             # 强制递归删除目录(极度危险,慎用!)
rm -f file1             # 强制删除file1(不提示确认)

5.6 文件链接命令(ln)

ln命令用于创建链接文件。Linux支持两种链接:硬链接(Hard Link)和软链接(Symbolic Link)。

常用选项:

-s:创建符号链接(软链接),而非硬链接

-f:强行创建链接,不论其是否存在

-i:覆盖原有文件之前先询问用户

ln命令使用举例:

ln somefile hardlinkfile        # 创建硬链接
ln -s somefile softlinkfile     # 创建符号链接(软链接)
ln -s somedir softlinkfile      # 对目录创建软链接

硬链接与软链接的区别:

硬链接:与原始文件共享同一个inode,删除原始文件不影响硬链接文件。硬链接不能跨文件系统,也不能对目录创建。

软链接(符号链接):类似于Windows的快捷方式,是一个独立的文件。删除原始文件后,软链接将失效(变成悬空链接)。软链接可以跨文件系统,也可以对目录创建。

5.7 时间戳命令(touch)

touch命令用于更改现有文件的时间戳。若文件不存在,系统会建立一个空文件。默认情况下将文件的时间记录改为当前时间。

常用选项:

-a:只更改访问时间

-m:只更改修改时间

-t <STAMP>:使用指定时间而非当前时间

-r <参考文件>:使用指定文件的时间属性而非当前时间

文件新建的几种方式:

touch 1.txt                    # 用touch新建空文件
echo "abc" > 1.txt             # 用重定向新建文件并写入内容
cat /home/jsj/filea > /tmp/fileb  # 重定向复制文件内容
vi 1.txt                       # 用vi编辑器编辑新建文件

5.8 文件查找命令(find)

find命令用于在文件系统中查找匹配的文件,是Linux中最强大的文件查找工具之一。它可以按照文件名、时间属性、文件大小、文件类型、文件所有者等多种条件进行查找。

基本格式:

find [path...] -option [-print] [-exec -ok command] {} \;

常用查找条件:

查找条件

说明

-name name

按文件名查找,iname会忽略大小写

-amin/atime n

在过去n分钟/天内被读取过

-cmin/ctime n

在过去n分钟/天内状态被修改过

-mmin/mtime n

在过去n分钟/天内内容被修改过

-newer file

比file文件内容新的文件

-size n

文件大小是n(b=512字节,k,M,G)

-type x

按文件类型查找(f-文件,d-目录,l-链接等)

-user username

按文件所有者查找

find命令实战案例:

# 查找/tmp目录下21天之前访问过的大于10M的文件
find /tmp -size +10M -a -atime +21

# 查找/home目录下属主为jjheng或osmond的大于10M的文件
find /home -user jjheng -o -user osmond -size +10M

# 查找/tmp目录下的属主不是osmond的文件
find /tmp ! -user osmond

# 在/mnt下查找*.txt且文件系统类型不为vfat的文件
find /mnt -name '*.txt' ! -fstype vfat

# 在/tmp下查找名为l开头且类型为符号链接的文件
find /tmp -name 'l*' -type l

# 找出/var/log目录下所有的5天前修改过的.log文件
find /var/log -name '*.log' -mtime +5

# 查找过程中报错信息不显示
find /var/log -mtime +40 -a -size +100k -exec ls -lh {} \; 2>/dev/null

逻辑运算符组合:

find命令支持使用逻辑运算符与、或、非组成复合条件。若以空格作为各个表达式的间隔符,则各个表达式之间是与关系。! 表示取反,-a 表示与,-o 表示或,() 可以改变操作符优先级。

5.9 文件压缩与打包

Linux中提供了多种文件压缩和打包工具:

命令

功能说明

文件扩展名

compress

UNIX早期使用的压缩程序

gzip

流行的GNU gzip数据压缩/解压程序

.gz

bzip2

免费的无专利高性能数据压缩工具

.bz2

zip/unzip

与WinZIP兼容的压缩/解压工具

.zip

rar

与WinRAR兼容的压缩/解压工具

.rar

7za

使用LZMA算法的高性能压缩/解压工具

.7z

tar

文件打包、归档工具

.tar

Linux中通常使用tar命令调用各个压缩软件实现压缩和解压缩,压缩后文件的常见后缀有tar.gz、tar.bz2,或tgz和tbz。

gzip压缩/解压

gzip命令对文本文件有60%~70%的压缩率。文件经过gzip压缩后,会多出一个.gz后缀。

命令

说明

gzip 源文件

压缩成源文件.gz(源文件消失)

gzip -dv 压缩文件

解压并打印执行过程

gzip -c 源文件 > 压缩文件.gz

压缩文件并保留源文件

gzip *

批量压缩当前目录所有文件

gzip -dv *

批量解压当前目录所有.gz文件

tar打包和压缩

tar是最常用的打包和压缩工具,支持多种压缩格式:

参数

说明

-c

建立新的归档文件

-x

从归档文件中解出文件

-v

处理过程中输出相关信息

-f

对普通文件操作,-f filename指定文件名

-z

调用gzip来压缩/解压缩归档文件

-j

调用bzip2来压缩/解压缩归档文件

-r

向归档文件末尾追加文件

-t

列出归档文件的内容

常用tar命令示例:

# 压缩打包
tar -zcvf aa.tar.gz a{1,2,3}    # 将file1、file2、file3打包并gzip压缩
tar -jcvf aa.tar.bz2 dir/       # 将目录打包并bzip2压缩

# 解压缩
tar -zxvf aa.tar.gz             # 解压tar.gz文件到当前目录
tar -zxvf aa.tar.gz -C test1/   # 解压到指定目录
tar -jxvf aa.tar.bz2            # 解压tar.bz2文件

结语

本文系统地介绍了Linux操作的基础知识,涵盖了从系统登录、命令使用到文件管理的各个方面。Linux的学习需要大量的实践操作,建议读者在掌握本文基础知识后,多动手练习,逐步深入理解Linux系统的运行机制和高级用法。

记住,Linux社区是一个非常友好的技术社区,遇到问题时不妨先搜索一下,大多数常见问题的解决方案都能在网络上找到。祝你Linux学习之旅顺利!

配套习题

一、单选题

1. 将Linux系统运行级别设为6,则表示系统为( )。

  • A. 重启模式
  • B. 关机模式
  • C. 命令行多用户模式
  • D. 图形模式
  • 答案:A
  • 解析:Linux系统运行级别中,0代表关机,1代表单用户模式,3代表命令行多用户模式,5代表图形界面模式,6代表重启(reboot)。

2. 命令ls -lRa /home中,ls命令的操作对象是( )。

  • A. /home
  • B. -lRa
  • C. -lRa /home
  • D. -l
  • 答案:A
  • 解析:命令格式通常为"命令 选项 参数/操作对象"。其中ls是命令,-lRa是选项(l是长格式显示,R是递归显示子目录,a是显示所有文件包括隐藏文件),/home是操作对象。

3. 关于命令 $ mkdir -p t1/t2的说法正确的是( )。

  • A. 在当前目录中创建了一个名为t1的普通文件
  • B. 在当前目录中创建了一个名为t1/t2的目录
  • C. 在当前目录中创建了目录t1 并在t1中创建了子目录t2
  • D. 将当前目录中的t1/t2文件删除
  • 答案:C
  • 解析:mkdir是创建目录的命令,-p选项表示递归创建目录,即如果父目录不存在则自动创建。该命令会在当前目录下先创建t1目录,再在t1中创建t2子目录。

4. 可以切换到当前目录的父目录的命令是( )。

  • A. cd /
  • B. cd .
  • C. cd ..
  • D. Cd
  • 答案:C
  • 解析:cd是切换目录的命令,cd /是切换到根目录,cd .是切换到当前目录,cd ..是切换到上一级(父)目录。

5. 下面哪个系统目录中存放了系统引导、启动时使用的文件和目录?

  • A. /dev
  • B. /etc
  • C. /root
  • D. /boot
  • 答案:D
  • 解析:/dev存放设备文件,/etc存放系统配置文件,/root是root用户的家目录,/boot存放系统引导、启动相关的文件(如内核、grub等)。

6. 以下对文件CentOS-7-x86_64-DVD-1708.iso的说法错误的是( )。

  • A. 这是CentOS 7.0的安装镜像文件
  • B. 这是一个32位的CentOS 7.0安装镜像文件
  • C. 这是一个64位的CentOS 7.0安装镜像文件
  • D. 这是一个完整DVD版的CentOS 7.0安装镜像文件
  • 答案:B
  • 解析:文件名中的x86_64代表这是64位的系统镜像,而不是32位(32位通常标记为i386或i686),所以B选项说法错误。

7. 以下命令中,可以查看当前工作目录的命令是( )。

  • A. $ cd
  • B. $ pwd
  • C. $ ln
  • D. $ ls
  • 答案:B
  • 解析:pwd是print working directory的缩写,用于显示当前工作目录的完整路径。cd是切换目录,ln是创建链接,ls是列出目录内容。

8. 可以显示当前目录中隐藏文件的命令为( )。

  • A. $ ls -l
  • B. $ ls -a
  • C. $ ls -h
  • D. $ ls
  • 答案:B
  • 解析:ls -a中的-a选项表示显示所有文件,包括以.开头的隐藏文件。-l是长格式显示,-h是以人类可读格式显示文件大小。

9. Linux中可以用来新建空目录的命令是( )。

  • A. rmdir
  • B. mkdir
  • C. cp
  • D. Less
  • 答案:B
  • 解析:mkdir是make directory的缩写,用于创建新目录。rmdir是删除空目录,cp是复制文件,less是查看文件内容。

10. 关闭Linux系统(不重新启动)可以使用的命令是?

  • A. reboot
  • B. shutdown -r
  • C. halt
  • D. ctrl+alt+del
  • 答案:C
  • 解析:halt命令用于关闭系统但不重启。reboot和shutdown -r都是重启系统,ctrl+alt+del是重启快捷键。

11. 下面哪个系统目录中存放了系统引导、启动时使用的文件和目录?

  • A. /dev
  • B. /etc
  • C. /root
  • D. /boot
  • 答案:D
  • 解析:/boot目录存放系统引导文件,包括内核文件、grub引导加载程序等。/dev是设备文件,/etc是配置文件,/root是root用户家目录。

12. Linux命令输入时,可以用来进行快速跳转到命令行首的快捷键是( )。

  • A. ctrl+a
  • B. ctrl+e
  • C. ctrl+u
  • D. ctrl+l
  • 答案:A
  • 解析:ctrl+a跳转到命令行首,ctrl+e跳转到命令行尾,ctrl+u删除光标前的内容,ctrl+l清屏。

13. Linux命令输入时,可以用于命令补齐操作的是( )。

  • A. ↑
  • B. ↓
  • C. Tab
  • D. Esc
  • 答案:C
  • 解析:Tab键用于命令和文件名的自动补全,↑↓用于历史命令切换,Esc用于取消当前输入。

14. Linux系统的目录中,用于存放虚拟文件系统的是( )。

  • A. /root
  • B. /tmp
  • C. /sbin
  • D. /proc
  • 答案:D
  • 解析:/proc是虚拟文件系统,存放系统进程和内核信息,这些文件不占用磁盘空间,是内存中的虚拟文件。

15. Linux系统的目录中,用于存放系统启动时的文件的是( )。

  • A. /root
  • B. /boot
  • C. /sbin
  • D. /proc
  • 答案:B
  • 解析:/boot存放系统启动相关文件,包括内核、initrd、grub等。

16. Linux系统的目录中,属于超级管理员专用目录的是( )。

  • A. /root
  • B. /boot
  • C. /sbin
  • D. /proc
  • 答案:A
  • 解析:/root是root用户的家目录,只有root用户可以访问。/sbin存放系统管理命令,但目录本身不是专用的。

17. shell命令进行文件搜索可以使用通配符来进行文件名描述,其中通配符有哪些?

  • A. ?和*
  • B. -和!
  • C. []
  • D. 以上都是
  • 答案:D
  • 解析:Linux通配符包括*(匹配任意字符)、?(匹配单个字符)、[](匹配字符集中的任意一个字符),所以以上都是。

18. 表示用户主目录的符号是:( )。

  • A. .
  • B. ..
  • C. ~
  • D. &
  • 答案:C
  • 解析:~符号代表当前用户的主目录,.代表当前目录,..代表上一级目录。

19. 假设一个目录中有5个文件:test.c test1.c test2.c test3.cpp test10.c,执行命令"ls test?.*"后显示的文件是( )。

  • A. test1.c test2.c test10.c
  • B. test.c test1.c test2.c test3.cpp
  • C. test1.c test2.c test3.cpp
  • D. test.c test1.c test2.c test10.c
  • 答案:C
  • 解析:?通配符匹配单个字符,test?.*表示test后面跟一个字符,再跟.和任意扩展名。所以匹配test1.c、test2.c、test3.cpp,test10.c因为10是两个字符所以不匹配。

20. clear命令的作用是( )。

  • A. 调整窗口大小
  • B. 清除终端窗口
  • C. 关闭终端窗口
  • D. 打开终端窗口
  • 答案:B
  • 解析:clear命令用于清除终端窗口的显示内容,但不会关闭终端。

21. ( )组合键可从图形化用户界面切换到字符界面的虚拟终端。

  • A. Crtl+Alt+f2
  • B. Crtl+d
  • C. Crtl+c
  • D. Crtl+z
  • 答案:A
  • 解析:ctrl+alt+f2到f6可以切换到不同的虚拟终端(字符界面),ctrl+alt+f1或f7可以切回图形界面。

22. Linux系统输入命令时,选项和参数间可以用( )符号隔开。

  • A. !
  • B. %
  • C. 空格
  • D. ~
  • 答案:C
  • 解析:Linux命令格式为:命令 选项 参数,各部分之间用空格隔开。

23. ( )命令跟reboot命令作用一样,都是重启系统?

  • A. shutdown -h now
  • B. shutdown -r now
  • C. shutdown -r +10
  • D. halt
  • 答案:B
  • 解析:shutdown -r now立即重启系统,与reboot作用相同。shutdown -h now是关机,shutdown -r +10是10分钟后重启。
二、多选题

24. 以下目录中以相对路径表示的有( )。

  • A. /usr/tmp
  • B. local
  • C. bin/zip
  • D. /etc
  • 答案:BC
  • 解析:绝对路径是从根目录/开始的完整路径,相对路径是相对于当前目录的路径。/usr/tmp和/etc以/开头,是绝对路径;local和bin/zip没有以/开头,是相对路径。

25. 以下命令符号,可以用于输出重定向的有( )。

  • A. >
  • B. >>
  • C. &>
  • D. <
  • 答案:ABC
  • 解析:>是覆盖输出重定向,>>是追加输出重定向,&>是标准输出和错误输出都重定向,<是输入重定向,所以ABC正确。

26. 可以显示所有以字符a或b开头,以txt结尾的文件的命令是( )。

  • A. $ ls [ab]*txt
  • B. $ ls {a,b}*txt
  • C. $ ls [a-b]*txt
  • D. $ ls ab*txt
  • 答案:ABC
  • 解析:[ab]表示匹配a或b中的一个字符,{a,b}也是匹配a或b,[a-b]表示匹配a到b之间的字符(即a或b),这三种写法都能匹配以a或b开头的文件;ab*txt只能匹配以ab开头的文件,不符合要求。

27. 以下哪些字符可以表示Linux系统文件的使用者( )?

  • A. a
  • B. u
  • C. g
  • D. o
  • 答案:ABCD
  • 解析:Linux文件权限中,u代表文件所有者(user),g代表文件所属组(group),o代表其他用户(other),a代表所有用户(all),所以ABCD正确。

28. Linux中可以用来查看文本文件的命令有( )。

  • A. cat
  • B. more
  • C. less
  • D. head
  • E. tail
  • 答案:ABCDE
  • 解析:cat显示整个文件,more分页显示,less可上下翻页,head显示文件头部,tail显示文件尾部,都可以用来查看文本文件。

29. 以下可以用来创建新的普通文件的有()

  • A. touch
  • B. 输出重定向符:>、>>、2>、&>
  • C. vi编辑器
  • D. mkdir
  • 答案:ABC
  • 解析:touch可以创建空文件,输出重定向符>和>>可以创建文件,vi编辑器保存时可以创建文件。mkdir只能创建目录,不能创建普通文件。

30. 以下对存储权限"x"的表述正确的是( )。

  • A. 表示对文件具有执行权限
  • B. 表示对文件具有写权限
  • C. 表示可以进入该目录
  • D. 表示查看目录里的内容
  • 答案:AC
  • 解析:x权限对于文件表示可执行,对于目录表示可以进入该目录(cd进入)。w是写权限,查看目录内容需要r权限。
三、判断题

31. Linux的文件系统中"/"目录是所有目录的起点。

  • A. 对
  • B. 错
  • 答案:A(对)
  • 解析:Linux文件系统是树形结构,根目录/是所有目录的起点,所有其他目录都从根目录开始分支。

32. Linux中, 目录文件可以用字符d表示。

  • A. 对
  • B. 错
  • 答案:A(对)
  • 解析:使用ls -l命令查看文件详细信息时,第一列的第一个字符表示文件类型,d表示目录(directory),-表示普通文件,l表示链接文件等。

33. 普通用户可以使用mkdir命令在任何目录下创建新的空目录。

  • A. 对
  • B. 错
  • 答案:B(错)
  • 解析:普通用户只能在自己有写权限的目录下创建目录,比如在系统根目录、/etc等目录下,普通用户没有权限创建目录,只有root用户或有相应权限的用户才可以。

34. 命令rmdir可以用来删除所有目录。

  • A. 对
  • B. 错
  • 答案:B(错)
  • 解析:rmdir只能删除空目录,如果目录中有文件或子目录,则无法删除,需要使用rm -r命令来删除非空目录。

35. Linux文件名前有"."号,表示该文件为隐藏文件。

  • A. 对
  • B. 错
  • 答案:A(对)
  • 解析:Linux中以.开头的文件是隐藏文件,默认情况下ls命令不会显示,需要使用ls -a才能看到。

36. Linux系统命令严格区分大小写,命令中的选项则不必遵循该准则。

  • A. 对
  • B. 错
  • 答案:B(错)
  • 解析:Linux系统中命令和选项都严格区分大小写,例如ls和LS是不同的命令,-a和-A是不同的选项。

37. Linux命令的标准输出是显示屏幕,而输出重定向,是把命令结果重定向到屏幕。

  • A. 对
  • B. 错
  • 答案:B(错)
  • 解析:标准输出默认是屏幕,但输出重定向是把命令结果重定向到文件或其他位置,而不是屏幕。

38. Linux命令:命令1|命令2,其作用是将"命令1"的运行结果,不管对错,都通过管道运算符,传输给"命令2",作为"命令2"的输入。

  • A. 对
  • B. 错
  • 答案:B(错)
  • 解析:管道符|只传递标准输出,不包括标准错误。如果要传递错误信息,需要使用&>或其他重定向方式。

39. Linux中链接文件分为软链接和硬链接两种。

  • A. 对
  • B. 错
  • 答案:A(对)
  • 解析:软链接(符号链接)类似于Windows的快捷方式,硬链接是文件的另一个入口,两者有本质区别。

40. 如果需要用grep命令查看文件fileB中的非注释内容的行,则可以用命令"grep -v '^#' fileB"。

  • A. 对
  • B. 错
  • 答案:A(对)
  • 解析:grep -v是反向匹配,'^#'匹配以#开头的行,所以该命令会显示所有不以#开头的行,即非注释行。

41. 命令 $ tar –zxvf aa.tar.gz的作用是将压缩文件aa.tar.gz解压到当前目录。

  • A. 对
  • B. 错
  • 答案:A(对)
  • 解析:tar -zxvf中,z表示gzip解压,x表示解压,v表示显示过程,f指定文件名,默认解压到当前目录。

最后总结

这两套题基本覆盖了 Linux 命令实操的核心基础模块,从系统启动、目录结构到文件权限和通配符,非常契合你现阶段对文件管理、日志查看、磁盘空间、计划任务、文件权限机制及路径概念等常用命令的学习需求。我按照功能模块把这些知识点重新做了体系化梳理,并补充了实际运维中的场景对照:

️ Linux系统运行级别与开关机命令

  • 运行级别(Runlevel):
    • 0:关机(halt)
    • 1:单用户模式(用于系统维护)
    • 3:命令行多用户模式(无图形界面)
    • 5:图形界面模式
    • 6:重启(reboot)
  • 关机/重启命令:
    • halt:关闭系统,不重启
    • reboot:重启系统
    • shutdown -h now:立即关机
    • shutdown -r now:立即重启(等同于reboot)
    • shutdown -r +10:10分钟后重启
    • Ctrl+Alt+Del:重启快捷键(图形界面下)
  • 切换终端:
    • Ctrl+Alt+F2~F6:切换到字符界面的虚拟终端
    • Ctrl+Alt+F1/F7:切回图形界面

Linux目录结构与文件系统

  • 根目录 /:所有目录的起点,是Linux文件系统的树形结构根节点。
  • 常用系统目录:
    • /boot:存放系统引导、启动时使用的文件(内核、grub等)
    • /dev:存放设备文件(如硬盘、终端等)
    • /etc:存放系统配置文件
    • /root:超级管理员(root)的专用家目录
    • /proc:虚拟文件系统,存放系统进程和内核信息(不占磁盘空间)
    • /sbin:存放系统管理命令(通常只有root可用)
    • /tmp:临时文件目录
  • 文件类型标识(ls -l第一列第一个字符):
    • d:目录(directory)
    • -:普通文件
    • l:链接文件(软链接/硬链接)

️ 常用命令与快捷键

  • 目录操作:
    • pwd:显示当前工作目录
    • cd:切换目录
      • cd /:切换到根目录
      • cd .:当前目录
      • cd ..:父目录(上一级目录)
      • cd ~:用户主目录
    • mkdir:创建目录
      • mkdir -p t1/t2:递归创建目录(自动创建父目录)
    • rmdir:删除空目录(不能删除非空目录)
  • 文件查看与搜索:
    • ls:列出目录内容
      • ls -a:显示所有文件(包括隐藏文件)
      • ls -l:长格式显示(详细信息)
      • ls -h:人类可读格式显示文件大小
      • ls -R:递归显示子目录
    • cat:显示整个文件内容
    • more/less:分页显示文件内容
    • head/tail:显示文件头部/尾部内容
    • grep -v '^#' fileB:显示文件中非注释行(反向匹配以#开头的行)
  • 文件创建:
    • touch:创建空文件
    • vi编辑器:编辑/创建文件
    • 输出重定向符(>、>>等):也可创建新文件
  • 压缩解压:
    • tar -zxvf aa.tar.gz:解压gzip格式的tar包到当前目录
      • -z:gzip解压
      • -x:解压
      • -v:显示过程
      • -f:指定文件名
  • 其他命令:
    • clear:清除终端窗口显示内容
    • ln:创建链接文件(软链接/硬链接)
    • cp:复制文件

️ 命令行快捷键与操作

  • 快捷键:
    • Ctrl+A:跳转到命令行首
    • Ctrl+E:跳转到命令行尾
    • Ctrl+U:删除光标前的内容
    • Ctrl+L:清屏
    • Tab:命令/文件名自动补全
    • ↑/↓:历史命令切换
    • Esc:取消当前输入
  • 命令格式:命令 选项 参数,各部分之间用空格隔开。

通配符与路径

  • 通配符:
    • *:匹配任意多个字符(包括0个)
    • ?:匹配单个字符
    • []:匹配字符集中的任意一个字符(如[ab]、[a-b])
    • {a,b}:匹配a或b(扩展通配符)
  • 示例:ls test?.* 匹配 test1.c、test2.c、test3.cpp(?只匹配一个字符,test10.c不匹配)
  • 路径:
    • 绝对路径:以/开头的完整路径(如/usr/tmp、/etc)
    • 相对路径:相对于当前目录的路径(如local、bin/zip)
  • 特殊符号:
    • ~:用户主目录
    • .:当前目录
    • ..:父目录

重定向与管道

  • 输出重定向:
    • >:覆盖输出重定向(将结果写入文件,覆盖原内容)
    • >>:追加输出重定向(将结果追加到文件末尾)
    • &>:标准输出和错误输出都重定向
  • 输入重定向:<(将文件内容作为命令输入)
  • 管道符 |:将命令1的标准输出作为命令2的输入(不包括标准错误)

文件权限

  • 权限字符:
    • u:文件所有者(user)
    • g:文件所属组(group)
    • o:其他用户(other)
    • a:所有用户(all)
  • 权限类型:
    • r:读权限(对目录:可以查看目录内容)
    • w:写权限
    • x:执行权限(对文件:可执行;对目录:可以进入该目录)

其他重要知识点

  • 隐藏文件:文件名以.开头(如.bashrc),默认ls不显示,需用ls -a
  • 大小写敏感:Linux命令和选项都严格区分大小写(如ls和LS不同,-a和-A不同)
  • 链接文件:分为软链接(符号链接)和硬链接两种
  • 普通用户权限限制:只能在自己有写权限的目录下创建目录,不能在/、/etc等系统目录下创建

易错点总结

  1. rmdir只能删除空目录,非空目录需用rm -r
  2. 管道符|只传递标准输出,不传递标准错误
  3. shutdown -r now和reboot作用相同,都是重启
  4. mkdir -p可以递归创建多级目录,父目录不存在时自动创建
  5. ls -a才能看到隐藏文件,ls默认不显示
  6. 输出重定向是把结果写入文件,不是屏幕
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐