Linux操作系统(基础)
近年来,基于Linux的国产操作系统(如openEuler、统信UOS、银河麒麟等)也在信创战略的推动下蓬勃发展,为数字化基础设施提供了自主可控的选择。但要成为普通人能用的操作系统,还需要更便捷的安装方式和友好的界面,这就催生了“发行版”。:曾经视Linux为威胁的微软,在现任CEO萨提亚·纳德拉的领导下也转向拥抱Linux,Azure云服务中超过一半的虚拟机运行在Linux上。这一决定至关重要,
一,操作系统的发展史

1、 缘起:从Unix到Minix (1969-1991)
Linux并非凭空产生,它的诞生深受前辈操作系统的影响。
-
Unix的诞生:1969年,AT&T贝尔实验室的肯·汤普森和丹尼斯·里奇开发了Unix系统。它以其高效、多用户、多任务的特性成为操作系统史上的里程碑。
-
GNU计划:1983年,理查德·斯托曼发起GNU计划,目标是创建一个完全自由的、类Unix的操作系统。到1990年,GNU项目已经开发出了包括
gcc编译器、bash终端等在内的核心软件,但唯独缺少一个自由的内核。 -
Minix的启发:1987年,荷兰教授安德鲁·塔嫩鲍姆为了教学目的,开发了一个名为Minix的类Unix系统。虽然功能简单,但其源代码开放,成为了包括林纳斯·托瓦兹在内的许多学生研究操作系统原理的绝佳教材。
二、 诞生与开源:林纳斯的“爱好” (1991-1992)
1991年,21岁的芬兰大学生林纳斯·托瓦兹在Minix的启发下,开始编写自己的操作系统内核。
-
历史性的一刻:1991年8月25日,林纳斯在
comp.os.minix新闻组上发布了一则消息,宣布他正在为386处理器开发一个“爱好”项目,并邀请大家提供反馈。 -
首个版本:1991年9月,Linux 0.01版在网上发布,代码仅有约1万行。
-
关键的许可证变更:1992年初,林纳斯将Linux内核的许可证从原来的禁止商业用途,变更为GNU通用公共许可证。这一决定至关重要,它允许任何人自由使用、修改和分发Linux的源代码,只要他们也将修改后的代码以同样的方式共享。正如林纳斯后来所说:“让Linux遵守GPL绝对是我干过的最正确的事”。
三、 生态崛起:发行版与桌面环境 (1993-2004)
有了内核和GNU的工具集,Linux已经具备了基本功能。但要成为普通人能用的操作系统,还需要更便捷的安装方式和友好的界面,这就催生了“发行版”。
-
早期发行版涌现:
-
Slackware (1993年发布):第一个取得广泛成功的Linux发行版,至今仍在维护。
-
Debian (1993年发布):由伊恩·默多克创立,是社区协作的典范,以其稳定性和对自由软件原则的坚守著称。它也成为后来Ubuntu等众多流行发行版的基础。
-
Red Hat Linux (1994年发布):最早商业化的Linux版本之一,为Linux进入企业市场铺平了道路。
-
-
桌面环境的飞跃:为了让Linux拥有更友好的图形界面,两个重要的桌面环境项目启动:
-
KDE (1996年启动):由马蒂亚斯·埃特里希发起。
-
GNOME (1997年启动):由米格尔·德伊卡萨和费德里科·梅纳发起。
它们的出现,让Linux不再是黑客们的“命令行工具”,而更像一个现代化的桌面操作系统。
-
四、 普及与多元化:走向大众 (2004-至今)
进入21世纪,Linux的影响力开始从服务器和开发者群体向更广泛的领域扩散。
-
Ubuntu的登场:2004年,马克·沙特尔沃思创立的Canonical公司发布了Ubuntu。它基于Debian,专注于提供“开箱即用”的友好体验,并承诺定期更新。Ubuntu迅速成为最受欢迎的Linux桌面发行版,极大地降低了新用户的入门门槛。
-
Android时代:2007年,Google联合多家公司成立“开放手机联盟”,并发布了基于Linux内核的Android操作系统。如今,Android已成为全球80%以上智能手机的操作系统。
-
企业应用的霸主:
-
服务器与云:Linux凭借其稳定、安全、免费的特性,成为数据中心和云计算平台的绝对主流。全球超过70%的网站运行在Linux服务器上,全球前500名的超级计算机也100%运行着Linux。
-
巨头“入局”:曾经视Linux为威胁的微软,在现任CEO萨提亚·纳德拉的领导下也转向拥抱Linux,Azure云服务中超过一半的虚拟机运行在Linux上。
-
五、 今日Linux:无处不在
如今的Linux,早已不只是“林纳斯的那个爱好”。它以一种“无处不在”但又“润物细无声”的方式存在于我们身边:
-
基础设施:支撑着互联网、金融、科研的关键服务器。
-
移动设备:作为Android的内核,驱动着全球数十亿部智能手机。
-
嵌入式系统:在路由器、智能电视、汽车信息娱乐系统里默默工作。
-
桌面领域:虽然市场份额不高,但在开发者、科研人员和追求开源理念的用户群体中,始终保有一批忠实用户。
-
国产力量:近年来,基于Linux的国产操作系统(如openEuler、统信UOS、银河麒麟等)也在信创战略的推动下蓬勃发展,为数字化基础设施提供了自主可控的选择。
Linux介绍
主要特性
基本思想
Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
完全免费
Linux是一款免费(或自由,即free)的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
兼容POSIX
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现代电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
系统优势
代码开源
Linux由众多微内核组成,其源代码完全开源。
网络功能强大
Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈。
系统工具链完整
Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性。
系统功能
系统内核的路由转发
Linux操作系统嵌入了TCP/IP协议栈,协议软件具有路由转发功能。路由转发依赖作为路由器的主机中安装多块网卡,当某一块网卡接收到数据包后,系统内核会根据数据包的目的IP地址,查询路由表,然后根据查询结果将数据包发送到另外一块网卡,最后通过此网卡把数据包发送出去。此主机的处理过程就是路由器完成的核心功能。
通过修改Linux系统内核参数ip_forward的方式实现路由功能,系统使用sysctl命令配置与显示在/proc/sys目录中的内核参数。首先在命令行输入:cat /proc/sys/net/ipv4/ip_forward,检查Linux内核是不是开启IP转发功能。如果结果为1,表明路由转发功能已经开启;如果结果为0,表明没有开启。出于安全考虑,Linux内核默认是禁止数据包路由转发的。在linux系统中,有临时和永久两种方法启用转发功能。
临时启用:此种方法只对当前会话起作用,系统重启后不再启用。临时开启的命令格式:sysctl–wnet.ipv4.ip_forward=1。
永久启用:此种永久性的启用IP转发功能,通过更改配置文件/etc/sysctl.conf中的语句行“net.ipv4.ip_forward=0”,修改为“net.ipv4.ip_forward=1”,保存配置文件后执行命令sysctl–p/etc/sysctl.conf,配置便立即启用。
开发工具
Linux已经成为工作、娱乐和个人生活等多个领域的支柱,人们已经越来越离不开它。在Linux的帮助下,技术的变革速度超出了人们的想象,Linux开发的速度也以指数规模增长。因此,越来越多的开发者也不断地加入开源和学习Linux开发的潮流当中。在这个过程之中,合适的工具是必不可少的,可喜的是,随着Linux的发展,大量适用于Linux的开发工具也不断成熟。
容器
放眼现实,如今已经是容器的时代了。容器既极其容易部署,又可以方便地构建开发环境。如果针对的是特定的平台的开发,将开发流程所需要的各种工具都创建到容器映像中是一种很好的方法,只要使用这一个容器映像,就能够快速启动大量运行所需服务的实例。
版本控制工具
如果正在开发一个大型项目,又或者参与团队开发,版本控制工具是必不可少的,它可以用于记录代码变更、提交代码以及合并代码。如果没有这样的工具,项目几乎无法妥善管理。
文本编辑器
如果没有文本编辑器,在Linux上开发将会变得异常艰难。当然,文本编辑器之间孰优孰劣,具体还是要取决于开发者的需求。
集成开发环境
集成开发环境(Integrated Development Environment,IDE) 是包含一整套全面的工具、可以实现一站式功能的开发环境。
文本比较工具
有时候会需要比较两个文件的内容来找到它们之间的不同之处,它们可能是同一文件的两个不同副本(例如有一个经过编译,而另一个没有)。这种情况下,肯定不想要凭借肉眼来找出差异,而是想要使用像Med这样的工具。
嵌入式
对Linux进行适当的修改和删减,并且能够在嵌入式系统上使用的系统,就是嵌入式Linux操作系统。具有如下的特点:
Linux系统是完全开放、免费的。正是开放性,它才能和其他系统互相兼容,进而实现信息的互联。而且它可以任意修改源代码,这是其他系统所不具备的。
Linux操作系统的显著优势是多用户和多任务。保证了多个用户使用互不影响;多任务独立开后,互不干扰,使得效率方面大大提高,可以充分把性能发挥出来。
设备是独立的。只要安装驱动程序,在驱动程序的支持和帮助下,任何用户都可以像使用文件一样,对任意设备进行使用和操作,这使得人们完全不用考虑设备存在的具体形式。
服务器
Linux服务器是设计出来进行业务处理应用的,在网络和计算机系统当中有广泛的应用,可以提供数据库管理和网络服务等内容,是一种性能非常高的和开源的服务器,在中国的计算机系统的客户端当中,有很多采用的就是Linux系统,其使用的范围非常广泛,用户体验反应较好。但是对于一些希望计算机应用性能比较高的单位而言,windows系统需要经常进行资源整合和碎片化管理,系统在配置的时候经常需要重新启动,这就无法避免产生停机的问题。同时,由于Linux系统的处理能力非常强悍,具备不可比拟的稳定性特征,因而Linux系统就不用经常进行重启,Linux系统的变化可以在配置的过程中实现,所以Linux服务器出现故障的概率比较小,所以很多企业组织在计算机配置的过程中经常使用Linux系统,从而降低服务器发生崩溃的可能性,很多企业在配置Linux系统的时候,都是通过减少服务器的故障发生率,实现企业业务的高效运转。
Linux目录

常见目录介绍(记住重点)
根目录/
Linux 文件系统的起点
根目录(/)构成了 Linux 文件系统的最高层级,它是整个文件系统架构的起点。这个目录就像是 Linux 系统的“心脏”,所有文件和目录都是从这个中心点向外扩展的。在 Linux 系统中,几乎所有的文件路径都是以根目录为起点,形成了一个分层的组织结构。无论是个人用户的文件、系统的配置文件,还是安装的软件,它们都位于根目录下的某个分支中。比如,/home/user 和 /bin/ls 这些路径都是根目录下的具体位置。
二进制文件目录/bin
基本命令的集合
/bin 目录是 Linux 系统中极为重要的一个部分,它存放着系统启动和日常操作所必需的基本命令。这些命令,比如 ls、cp、mv 和 cat,对用户和管理员来说都是必不可少的工具。即使在单用户模式下,/bin 目录下的命令也是必须可用的,因为它提供了进行基本系统管理的指令。缺失了 /bin 目录,系统即使能够启动,也无法执行正常的操作。
系统二进制文件目录/sbin
管理员专属命令
与 /bin 目录相仿,/sbin 目录同样存放着关键的命令,但它的焦点在于系统管理级别的指令。这些指令大多专为系统管理员,也就是 root 用户设计,比如 fdisk(分区工具)、ifconfig(网络配置工具) 和 shutdown(关机命令) 等。这些命令在系统引导过程中可能需要执行,或者在需要进行系统维护和修复时才会被调用。鉴于这些命令对系统稳定性的潜在影响,它们的使用权限通常仅限于管理员。
配置文件/etc
系统配置的中心
/etc 目录在 Linux 系统中扮演着存放配置文件的核心角色。几乎所有的系统服务设置文件都被放置在这个目录中。它涵盖了从用户账户设置(如 /etc/passwd)到网络设置(如 /etc/network),以及系统启动相关设置(如 /etc/hostname)等多个方面。这个目录对确保系统的顺畅运行具有决定性作用。当需要对系统设置进行修改或对服务进行微调时,通常需要编辑此目录下的文件。操作时需要格外小心,因为不当的配置可能会引起系统启动失败或其他问题。
设备文件目录/dev
硬件和设备的接口
/dev 目录中的设备文件并非用于存储数据,而是充当操作系统与各类硬件设备沟通的桥梁。在 Linux 系统中,通过这些设备文件来实现对硬件如硬盘、键盘、鼠标、光驱等的识别与操作,比如 /dev/sda 表示主硬盘,/dev/tty 指的是终端设备。用户可以通过这些文件来操作硬件资源,例如通过 /dev/usb 来挂载外部设备。
虚拟文件系统目录/proc
系统运行时信息的宝库
/proc 目录是 Linux 系统中一个独特的虚拟文件系统,它实时反映了系统运行时的状态信息。用户可以通过这个目录下的文件来获取进程、内存、CPU 以及硬件状态等数据,如 /proc/cpuinfo 查看 CPU 信息,/proc/meminfo 查看 内存信息,/proc/uptime 查看系统运行时间。这些内容并非存储在硬盘上,而是由内核即时生成,为用户提供了一个即时的系统状态概览。
变动文件目录/var
存储日志、缓存、邮件等数据
/var 目录是存放系统中经常变动的文件的地方,如系统日志、缓存、邮件和打印队列等。例如,系统日志文件存放在/var/log目录下,记录着系统及服务的运行情况;而/var/spool目录则用于存储各种队列文件,如打印和邮件任务。由于这些文件会不断增多,/var目录的空间可能会迅速填满,因此管理员需要定期对其进行维护和清理。
临时文件目录/tmp
临时文件的存放处
/tmp目录用于存储临时文件,无论是程序运行时产生的临时文件,还是用户操作生成的临时数据,都会存放在这里。该目录下的文件通常有效期限较短,系统会定时清理过时的文件。尽管所有用户都有权限向/tmp目录写入文件,但由于可能存在安全风险,有时会对特定程序的写入操作进行限制。
用户程序和共享库目录/usr
系统和应用程序的存放地
/usr 目录是 Linux 系统中用于存放通用文件和用户应用程序的区域,其中包含了众多应用程序、库文件及文档等。在/usr/bin下,存放着系统大多数的用户可执行命令和工具;/usr/lib则包含了应用程序运行所需的库文件。通常/usr目录中的文件是只读的,因为系统的运行和应用程序的执行很大程度上依赖于这个目录的内容。
用户主目录/home
每个用户的个人空间
/home 目录是存放所有普通用户个人资料的根目录,每个用户都有一个以其用户名命名的专属子目录,这里保存了他们的个人文件、设置和文档。比如,/home/alice 就是用户 Alice 的个人文件夹。用户在常规操作中创建的文件默认保存在各自的主目录中。用户可以独立管理自己的主目录内容,而系统管理员则有权限访问和管理所有用户的主目录。
超级用户主目录/root
超级用户的专属空间
/root 目录是系统管理员(即 root 用户)的个人主目录,它不同于普通用户的/home目录,这里主要保存了管理员个人的设置文件和文档。尽管其他用户的文件也存放在/home下,但root用户的权限更广泛。因为root用户能够对系统的任何部分进行修改,所以/root目录常常包含了root用户在管理系统中所需的脚本和配置文件。
可选软件目录/opt
手动安装的软件包
/opt 目录是用户用来安装那些不由系统包管理器管理的额外软件包的地方。在这个目录下,每个文件夹通常对应一个特定的应用程序或软件包,它们可能是由用户或第三方直接安装的,而不是通过像 apt 或 yum 这样的包管理器。比如,一些商业软件或大型应用程序,如 Google Chrome 或 Autodesk,就可能会安装到 /opt 目录下。
启动文件目录/boot
启动所需的核心文件
/boot目录保存了 Linux 系统启动所需的关键文件,其中包括 Linux 内核(vmlinuz)、引导加载器的配置文件(例如grub.conf)以及其他启动必备的文件。这些文件对于系统启动至关重要,缺少它们将导致系统无法正常引导。
系统库文件目录/lib
运行时必需的共享库
/lib目录存放着系统运行必备的共享库文件,各程序可通过此目录来调用所需的库文件。众多关键程序都依靠这些库文件提供支持,故而这些文件是系统运行中至关重要的部分。
外部设备目录/media
挂载外部存储设备
/media 目录是用于挂载USB闪存盘、光盘等外部存储设备的场所,系统会在该目录下为每个插入的外设生成一个挂载点以便访问。例如,连接USB设备后,系统通常会在/media下生成如/media/usb的子目录,方便用户读取设备中的数据。这样的设计简化了外部存储设备的管理,并减少了在/dev目录中生成大量设备文件的必要性。
临时挂载目录/mnt
手动挂载外部文件系统
/mnt目录是Linux系统中传统用来临时挂载文件系统的位置。尽管现在系统倾向于自动将设备挂载到/media,但管理员仍会使用/mnt来手动挂载如NFS或额外硬盘分区等文件系统。过去,/mnt经常被用来挂载光盘等临时存储,尽管现在它的使用频率降低,但仍是系统管理员所熟知的目录。
运行时文件目录/run
存储系统运行时数据
/run 目录用于存放系统运行期间产生的文件,其中包括进程ID文件、锁文件和会话信息等。这个目录类似于/var/run,保存的是系统及应用程序运行时的临时数据,这些数据在系统重启后将不复存在。例如,/run/sshd.pid 文件可能记录了SSH服务的进程ID。由于/run专为运行时文件设计,其性能优于传统的/var/run,并且在系统启动时通常会被挂载到内存中。
服务数据目录/srv
服务特定数据的存放位置
/srv 目录是专门用来存放服务数据的,这里的数据是指供用户访问的内容,比如网站的页面文件、FTP服务器的资料、数据库的备份等。例如,如果你在Linux系统中运营一个网站,那么网页文件可能会存放在/srv/www目录下;而FTP服务器的数据可能会放在/srv/ftp目录中。这个目录的设置旨在将服务数据与其他系统文件和应用程序隔离开,以便于进行管理和维护,对于服务器管理员来说,这是一个虽然不常用但极其关键的目录。
附加小贴士:如何高效管理 Linux 目录结构
定期清理 /var 和 /tmp 目录有助于防止磁盘空间被无效占用;利用符号链接管理大文件或目录可以优化文件系统空间;定期备份 /etc、/home 和 /srv 等关键目录是预防系统故障和数据丢失的措施;限制普通用户访问 /dev 和 /proc 目录有助于提升系统安全,避免安全风险。

Linux命令
1. 文件与目录操作
| 命令 | 功能 | 示例 |
|---|---|---|
ls |
列出目录内容 | ls -la (显示所有文件,含详细信息) |
cd |
切换目录 | cd /home/user 或 cd .. (返回上级) |
pwd |
显示当前路径 | pwd |
cp |
复制文件/目录 | cp file1.txt file2.txt 或 cp -r dir1 dir2 |
mv |
移动/重命名 | mv old.txt new.txt 或 mv file /target/ |
rm |
删除文件/目录 | rm file.txt 或 rm -rf dir (谨慎使用) |
mkdir |
创建目录 | mkdir new_folder |
touch |
创建空文件或更新时间戳 | touch newfile.txt |
2. 文件查看与编辑
| 命令 | 功能 | 示例 |
|---|---|---|
cat |
查看完整文件 | cat file.txt |
less / more |
分页查看 | less largefile.log (按q退出) |
head / tail |
查看头/尾几行 | tail -f app.log (实时跟踪日志) |
nano / vim |
文本编辑器 | nano config.conf |
3. 系统信息与管理
| 命令 | 功能 | 示例 |
|---|---|---|
top / htop |
查看进程及资源占用 | htop (需安装,更直观) |
ps |
查看进程快照 | ps aux | grep nginx |
kill |
终止进程 | kill -9 1234 (强制结束PID为1234的进程) |
df / du |
查看磁盘空间/目录大小 | df -h 或 du -sh folder/ |
free |
查看内存使用 | free -h |
uname |
查看系统信息 | uname -a |
4. 网络相关
| 命令 | 功能 | 示例 |
|---|---|---|
ping |
测试网络连通性 | ping google.com |
curl / wget |
网络请求/下载文件 | curl -O https://example.com/file.zip |
netstat / ss |
查看网络连接 | ss -tuln (查看监听端口) |
ssh |
远程登录 | ssh user@192.168.1.100 |
scp |
安全拷贝文件 | scp file.txt user@remote:/path/ |
5. 权限与用户
| 命令 | 功能 | 示例 |
|---|---|---|
chmod |
修改权限 | chmod +x script.sh (添加执行权限) |
chown |
修改所有者 | chown user:group file |
sudo |
以超级用户执行 |
|


6. 压缩与打包
| 命令 | 功能 | 示例 |
|---|---|---|
tar |
打包/解包 | tar -czvf archive.tar.gz folder/ (压缩)tar -xzvf archive.tar.gz (解压) |
zip / unzip |
zip格式压缩/解压 | unzip file.zip |
7. 包管理(因发行版而异)
-
Debian/Ubuntu:
aptsudo apt update && sudo apt install nginx -
Red Hat/CentOS:
yum或dnfsudo dnf install nginx
实用技巧
-
管道
|:将前一命令输出作为后一命令输入ls -la | grep "txt" -
重定向:
>覆盖写入,>>追加写入echo "hello" > file.txt -
命令历史:
history或按Ctrl+R搜索历史 -
后台运行:在命令后加
&,如python script.py & -
通配符:
*匹配任意字符,?匹配单个字符rm *.log
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)