一、Linux概述
1、一、什么是 Linux?
Linux 是一种开源、免费的操作系统,其核心是 Linux 内核(由 Linus Torvalds 于 1991 年开发)。Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。
Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议站,经过适当的配置就可实现路由器的功能。
2、Linux核心特性
-
多用户多任务支持
-
模块化设计
-
稳定高效
-
兼容多种硬件平台
-
遵循POSIX标准
-
提供丰富网络功能
-
强大安全机制
3、Linux组成
内核(Kernel):
-
操作系统的核心,负责管理硬件资源(CPU、内存、磁盘、网络等)、进程调度、文件系统和设备驱动。
-
常见内核版本:长期支持版(LTS)如 5.4、5.15、6.1 等。
shell(外壳):
-
用户与内核交互的接口,解析用户输入的命令。
-
常见 shell:Bash(默认)、Zsh、Fish 等。
文件系统:
-
采用 树形结构(根目录为
/
),标准目录如/usr
(系统程序)、/home
(用户数据)、/etc
(配置文件)等。 -
支持多种文件系统:ext4、XFS、Btrfs、NTFS(通过驱动支持)。
-
Linux跟Windows有很大不同,最大的特点是:一切皆文件,包括硬件,也是以文件方式来管理存储的。
应用程序:
-
包括系统工具(如
ls
、cp
、grep
)和用户软件(如 LibreOffice、Firefox、GIMP 等),多数基于开源软件生态。
4、Linux版本
Linux内核版本
是操作系统的核心部分,它提供了操作系统的基本功能和底层支持,如内存管理、文件系统、设备驱动等。内核版本号通常具有“主版本号.次版本号.修正号”的格式,例如5.10.23。次版本号的偶数通常表示稳定版,奇数则可能包含测试的新功能。
Linux发行版
是在内核的基础上加入了用户界面、应用程序和管理工具等,形成了一个完整的操作系统供用户安装和使用。不同的发行版会使用不同版本的Linux内核,并在此基础上集成各自的特性和软件包。常见的Linux发行版包括Debian系的Ubuntu、Linux Mint;Red Hat系的Fedora、CentOS,以及独立发行的Arch Linux、openSUSE和Gentoo等。
二、Linux命令简介
1、什么是 Linux 命令?
Linux 命令是用户在字符界面输入的字符串,用于完成特定任务。它可以是指令或程序名,例如ls
(列表)、date
(时间)等。命令严格区分大小写,输入时需注意英文字母的大小写形式。
2、 Shell:用户与内核的 “翻译官”
Linux 命令的执行必须依赖于 Shell 命令解释器,Shell 实际上是在 Linux 操作系统中运行的一种特殊程序,它位于操作系统内核与用户之间,负责接收用户输入的命令并进行解释,将需要执行的操作传递给系统内核执行,Shell 在用户和内核之间充当了“翻译官”的角色。
根据 Linux 命令与 Shell 程序的关系,Linux 命令一般分为以下两种类型:内部命令和外部命令
3、Linux命令格式
-
命令字:必填,如
ls
、date
,是命令的核心标识。 -
选项
:可选,用于调整命令功能,分为:
-
短格式:单个字符,以
-
开头,如-l
(长列表)、-a
(显示隐藏文件),多个短选项可合并为-al
。 -
长格式:单词形式,以
--
开头,如--help
(帮助)、--all
(显示所有文件)。
-
-
参数:可选,指定操作对象(如文件名、目录名),多个参数用空格分隔。
4、编辑Linux命令行
-
Tab 键自动补全:输入部分字符后按 Tab,自动补全命令或文件 / 目录名。若存在多个匹配项,按两次 Tab 显示列表。
-
反斜杠
\
强制换行:长命令可通过\
换行,提升可读性。 -
Ctrl 组合键:
-
Ctrl+U
:清空当前行至行首。 -
Ctrl+K
:清空当前行至行尾。 -
Ctrl+L
:清屏(等效于clear
命令)。 -
Ctrl+C
:取消当前命令执行。
三、Linux系统的命令帮助
-
使用 help 命令
-
使用“--help”选项
-
使用 man 手册页:man ls | col -b > lshelp.txt 可以将ls 命令的帮助手册保存为文本文件 lshelp.txt。
四、Linux系统的基础命令
-
查看系统版本 cat /etc/*release ( *release 表示显示任意以release结尾的文件)
-
date 命令 显示当前的系统时间,例date -s "20250528 14:49:30"
-
hwclock命令 显示与设定硬件时钟参数
五、Linux 目录结构
树状目录结构
文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。
系统启动必须
-
/boot(内核文件):存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。
-
/etc(配置文件):存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
-
/lib:l 存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
-
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中。
指令集合
-
/bin:存放着最常用的程序和指令
-
/sbin:只有系统管理员能使用的程序和指令。
外部文件管理
-
/dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。
-
/media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。
-
/mnt:临时挂载别的文件系统的,可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
临时文件
-
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有/var/run 目录,应该让它指向 run。
-
/lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
-
/tmp: 这个目录是用来存放一些临时文件的。
账户
-
/root:系统管理员的用户主目录(管理员的家目录)。
-
/home:家目录,对于家目录,系统会用~来代替,所谓家目录,就是系统给用户分配的目录,当普通用户登录系统的时候,会默认切换到用户对应的家目录。root用户的家目录在/root。
-
/usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
-
/usr/bin:系统用户使用的应用程序与指令
-
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
-
/usr/src:内核源代码默认的放置目录。
运行过程
-
/var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。
-
/proc:管理内存空间!虚拟的目录,是系统内存的映射,可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,也可以直接修改里面的某些文件来做修改。
扩展
-
/opt:默认是空的,安装额外软件可以放在这个里面。
-
/srv:存放服务启动后需要提取的数据(不用服务器就是空)
六、Linux 目录基本操作
1、pwd命令:查看当前的工作目录(Print Working Directory),执行pwd 指令可获取目前所在的工作目录的绝对路径名称。
# 表示为管理员登录
$ 表示为普通用户登录
2、cd 命令:切换工作目录(Change Directory)
. 当前目录
.. 当前目录的父目录
cd .. :退出当前目录,进入当前目录的父目录
cd~:切换到用户主目录
cd-:切换到上次访问的目录
3、ls命令:显示指定工作目录下之内容
参数:
-
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-
-d 只列出目录(不递归列出目录内的文件)。
-
-l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。
-
-r 倒序显示文件和目录。
-
-t 将按照修改时间排序,最新的文件在最前面。
-
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-
-R 递归显示目录中的所有文件和子目录。
--color:在字符模式中以颜色区分不同的文件。默认已开启
通常情况下,深蓝色表示目录,白色表示一般文件,绿色表示可执行的文件,黄色表示设备文件,红色表示压缩文件。
特殊字符
-
ls "my file.txt" # 列出文件名为"my file.txt"的文件
-
ls my\ file.txt # 列出文件名为"my file.txt"的文件
-
ls -- -filename # 列出文件名为"-filename"的文件
-
ls *.txt # 列出所有扩展名为.txt的文件
-
ls file?.txt # 列出文件名为file?.txt的文件,其中表示任意一个字符
-
ls [abc]*.txt # 列出以a、b或c开头、扩展名为.txt的文件
4、du命令:于显示目录或文件的大小。
参数:
-
-a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录。
-
-h:以更人性化的方式(默认以 KB 计数,但不显示单位)显示出统计结果,使用-h 选项后将显示出 KB、MB 等单位。
-
-s:只统计每个参数所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小。
5、mkdir 命令:创建新的目录
执行“mkdir public_html”命令将在当前目录下创建名为 public_html 的子目录,具体操作如下:
七、Linux 文件基本操作
1、touch命令:创建空文件
参数
-
a 改变档案的读取时间记录。
-
m 改变档案的修改时间记录。
-
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
-
f 不使用,是为了与其他 unix 系统的相容性而保留。
-
r 使用参考档的时间记录,与 --file 的效果一样。
-
d 设定时间与日期,可以使用各种不同的格式。
-
t 设定档案的时间记录,格式与 date 指令相同。
2、ln 命令:某一个文件在另外一个位置建立一个同步的链接(类似快捷方式)。
格式:ln [-s] 源文件或目录… 链接文件或目标位置
ln -s /root/test/ll /root/test/ll/m1/l1.ln
在/root/test/ll/m1下创建出/root/test/ll的软链接
硬链接:多个文件名指向同一索引节点(Inode),删除其中一个文件名不影响其他链接,不能对目录创建硬链接。
软链接(符号链接):类似 Windows 快捷方式,存储原始文件路径,原始文件删除后软链接失效,可对文件或目录创建。
3、cp命令:复制(Copy)文件或目录
参数
-
-r 或 -R:递归复制目录及其内容(用于复制目录)。
例:cp -r /path/to/source_dir /path/to/destination/ 将 source_dir 目录及其内容递归复制到 destination目录
-
-i:交互模式,覆盖前提示用户确认。
-
-f:强制复制,覆盖目标文件而不提示。
-
-v:显示详细的复制过程(verbose)。
-
-p:保留文件的原始属性(如权限、时间戳等)。
-
-a:归档模式,等同于 -dpR,保留所有文件属性和递归复制目录。
-
-u:仅当源文件比目标文件新时才复制(更新模式)。
-
-l:创建硬链接而不是复制文件。
-
-s:创建符号链接(软链接)而不是复制文件。
4、mv 命令:将指定的文件或目录转移位置,如果目标位置与源位置相同,则效果相当于为文件或目录改名。
参数
-
-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-
-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-
-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-
-n: 不要覆盖任何已存在的文件或目录。
-
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
5、rm 命令:用于删除指定的文件或目录
参数
-
-f:删除文件或目录时不进行提醒,而直接强制删除。
-
-i:删除文件或目录时提醒用户确认。
-
-r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。
6、which命令:用于查找 Linux 命令程序并显示所在的具体位置
7、find命令:可以根据目标的名称、类型、大小等不同属性进行精细查找
常用参数
-
-name pattern:按文件名查找,支持使用通配符 * 和 ?。
-
-type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。
-
-size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。
-
-mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。
-
-user username:按文件所有者查找。
-
-group groupname:按文件所属组查找。
时间参数
-
-amin n:查找在 n 分钟内被访问过的文件。
-
-atime n:查找在 n*24 小时内被访问过的文件。
-
-cmin n:查找在 n 分钟内状态发生变化的文件(例如权限)。
-
-ctime n:查找在 n*24 小时内状态发生变化的文件(例如权限)。
-
-mmin n:查找在 n 分钟内被修改过的文件。
-
-mtime n:查找在 n*24 小时内被修改过的文件。
-
+n:查找比 n 天前更早的文件或目录。
-
-n:查找在 n 天内更改过属性的文件或目录。
-
n:查找在 n 天前(指定那一天)更改过属性的文件或目录。
找并执行操作
find /path/to/search -name "pattern" -exec rm {}\;
-exec 选项允许你执行一个命令,{} 将会被匹配到的文件名替代,\; 表示命令结束。
八、Linux 查看文件内容
1、cat命令
参数
- -n:显示行号,会在输出的每一行前加上行号。
- -b:显示行号,但只对非空行进行编号。
- -s:压缩连续的空行,只显示一个空行。
- -E:在每一行的末尾显示 $ 符号。
- -T:将 Tab 字符显示为 ^I。
- -v:显示一些非打印字符。
2、more和less命令
3、head 和 tail 命令
九、Linux 检索文件内容
1、wc命令:用于统计文件内容中包含的行数、单词数、字节数等信息,使用文件名作为参数,可以同时统计多个文件。
选项
- -l:统计文件内容中的行数。
- -w:统计文件内容中的单词个数(以空格或制表位作为分隔)。
- -c:统计文件内容中的字节数。
2、grep 命令:用于在文件中查找并显示包含指定字符串的行,可以直接指定关键字符串作为查找条件,也可以使用复杂的条件表达式
十、Linux备份与恢复文档
gzip | 压缩文件 | gzip [选项] 要压缩的文件 |
bzip | 压缩文件 | |
tar | 对目录和文件进行归档 | tar [选项] 归档及压缩文件名 需要归档的目录或者源文件 |
解压并恢复归档压缩包文件 | tar [选项] ...归档及压缩文件名 [-C目标目录] | |
排除目录中的某些文件,然后进行压缩 | tar --exclude=目录名/*或者文件名 -zcvf备份文件名.tgz 目录名 |