Linux操作系统:
Linux前世今生
Linux是一种自由和开放源代码的类Unix操作系统。它起源于1991年,由林纳斯·托瓦兹(Linus Torvalds)在芬兰赫尔辛基大学上学时创建。最初,Linux是为个人计算机设计的,但随着时间的推移,它逐渐发展成为了一种强大的服务器操作系统。
Linux的发展可以分为几个阶段。在早期,Linux主要受到学术界和技术爱好者的关注。然而,随着互联网的普及和开源软件运动的兴起,Linux开始吸引了越来越多的开发者和企业的关注。在20世纪90年代末和21世纪初,Linux逐渐成为了服务器领域的主流操作系统。
图:Linux系统的各个发行版本
在过去的几十年里,Linux取得了显著的成就。许多大型互联网公司,如谷歌、亚马逊和Facebook,都在其数据中心中使用Linux作为主要的服务器操作系统。此外,Linux还被广泛应用于嵌入式系统、移动设备和超级计算机等领域。
如今,Linux已经成为了一种全球性的技术现象。它的成功在很大程度上归功于开源社区的贡献和支持。通过共享代码和资源,开发者们共同努力,使Linux不断发展壮大,为用户提供了更加稳定、安全和高效的操作系统。
Linux的发行版本有很多,主要分为两大类:一类是由商业公司维护的发行版本,另一类是由社区组织维护的发行版本。
在由商业公司维护的发行版本中,Redhat系列是最具代表性的,其中包括Redhat Enterprise Linux(RHEL),这是所谓的Redhat高级服务器,是一个收费版本;还有Fedora Core,这个版本是由原来的Redhat桌面版本发展而来,是一个免费版本;然后是CentOS,这是一个由RHEL社区克隆出来的免费版本。Redhat可以说是在我国使用人群最多的Linux版本,甚至有人将Redhat等同于Linux。
而在由社区组织维护的发行版本中,Debian是最古老和最著名的Linux发行版之一,它是许多流行的Linux发行版的基础,特别是Ubuntu和Kali Linux。Debian是一种强调使用自由软件的发行版,支持多种硬件平台。Debian及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为软件包管理器。此外,Debian的最新版本(代号Bullseye)的存储库总共包含了59,000个软件包,使其成为最完整的Linux发行版之一。
除此之外,还有许多其他的Linux发行版,例如Slackware系、Arch Linux等。这些发行版各有特色,为用户提供了丰富的选择。
Windows系统
Windows操作系统是由微软公司开发的一款商业操作系统,凭借其用户友好性、广泛的软件支持以及丰富的游戏应用,深受个人用户和商业应用的青睐。从1985年推出至今,Windows经历了多个版本的更新,如经典的Windows 95、经典的Windows XP,以及最新的Windows 10等。
相比之下,Linux则是一个开源操作系统,由全球各地的开发者共同维护和改进。与Windows不同,用户可以自由访问并修改Linux的源代码,使其更符合个人或企业的特殊需求。由于这一特性,Linux在运行速度上往往优于Windows,尤其在较旧的硬件上。此外,Linux系统不会收集用户的个人数据,因此在隐私保护方面具有优势。
然而,这两种操作系统各有优缺点。Windows因其易用性和广泛的软件兼容性而受到广泛欢迎,特别是在游戏应用方面表现出色。反观Linux,虽然操作复杂,学习成本较高,但由于其开源、免费的特性,加上在服务器环境、开发环境和高性能计算方面的优秀表现,赢得了技术爱好者和开发者的青睐。
总的来说,Windows和Linux是两种截然不同的操作系统,各自拥有独特的特点和优势。无论您是寻求易用性还是追求稳定性和自由度,都可以在这两者中找到适合自己的选择。
图:Windows系统及其丰富的图形用户界面
如何使用Linux操作系统
图:Linux系统架构
如上图所示,Linux最核心的部分其实是内核。内核依赖于设备的驱动,驱动又依附于计算机的硬件。内核可以通过系统调用应用程序(User Application)、壳(Shell)以及图形用户界面(GUI)。Shell提供了各种命令以运行我们的计算程序。
Linux系统在本地会有相应的图形用户界面(GUI),在超级计算机上(天河系列、曙光系列、神威系列)则是通过命令行的形式展示。
图:Linux系统的图形用户界面(本地电脑端)
图:Linux系统的命令行(超算端)
Linux常见操作指令
Linux系统主要是通过Shell指令实现指令的发送。在整个Shell会话中主要分为两个部分:Shell指令和可执行第三方程序(或脚本文件)。
图:Shell的主要组成部分
Shell指令可以理解成运行一个软件,只不过是以命令行的形式存在。
一条shell指令可能包含:[指令名称] [参数:-para 或 --para] [命令操作对象]
Linux常用操作指令 - 机器信息查询
作者列举了以下的常见的操作指令:
用户名称:当前使用的账户
whoami
服务器名称:当前所使用的节点
hostname
机器信息:基本硬件配置
查看CPU信息:lscpu
查看内存信息:free -h
监视进程和Linux整体性能:top
快捷键:
e 调整内存单位(K/M/G/T)
1 显示各个CPU核心具体使用情况
图:超算分配资源信息截图
上图展示了超算分配资源的信息截图。其中展示了机器的相关资源配置。其中的各项信息如下:
PID:进程号
USER:进程所有者
PR:进程优先级
VIRT:虚拟内存总量Kb
RES:进程使用的、未被换出的物理内存大小Kb(RES=CODE+DATA)
S:睡眠,代表进程状态。D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程。
CPU:CPU使用率
MEM:内存使用率
Linux常用操作指令--文件、目录和权限
目录/文件的查看和权限:
查看指定目录下所有文件:ls [directory]
以详细列表形式显示文件:ls -l
以修改时间倒序显示文件:ls -ltr
通配符:星号 *
查看文件名中带有na字符的文件:ls*na*
例如当以详细列表显示文件时,列表内容显示如下:
更改文件的权限:
chmod [para] [filename]
增减某种权限:
chmod +x
chmod -w
目录的创建,目录以及文件的删除:
mkdir [directoryName]
rm [-rf] [filename or directoryName]
查看当前目录(路径):
pwd
目录切换:
cd [absolutePath]
cd ..:上级目录
cd .:当前目录
cd -:上次访问目录
cd ~:用户根目录
文件的创建(空文件):
touch
文件/目录的移动:
mv [filename] [object_directoryName]
文件/目录的重命名:
mv [old_filename][new_filename]
文件/目录的拷贝:
cp [source_fielname] [dest_filename]
文件/目录名称补全:
输入文件名称起始n个字符后,单击tab键,将快速把文件名称补全,加快速度
文件目录查找:find(在目录中找文件/文件夹):
在指定目录下搜索,文件名中包含某特定字符串的文件:find [directory] -name [filename]
文件的字符搜索:grep(在文件中查找字符串):
在指定目录下文件中搜索,是否包含特定字符串,存在便显示:grep "[string]" -r [filename]
Linux常用操作指令--文件内容查看
显示文件全部内容cat
cat [filename] 将文件整个内容从上到下显示在屏幕
显示文件开头head
head [filename]
head -n [line_num][filename]
显示文件结尾tail
tail [filename]
tail -n [line_num][filename]指定行数
tail -f [filename]动态刷新文件末尾
显示文件结尾more
more [filename]若屏幕输出太长,该命令可以一页一页显示,更方便使用者逐页阅读。
Linux常用操作指令—压缩与解压缩
打包tar及解压
tar -cvf jpg.tar *.jpg:将目录里所有jpg文件打包成jpg.tar
tar czf jpg.tar.gz *.jpg:将目录里所有jpg文件打包成jpg.tar.gz
tar -xf jpg.tar:解压jpg.tar包中所有文件
tar -zxf jpg.tar.gz:解压jpg.tar.gz包中所有文件
压缩zip
zip jpg.zip *.jpg:将目录里所有jpg文件压缩成jpg.zip
unzip jpg.zip:解压jpg.zip包中所有文件
Linux常用操作指令—环境变量使用
环境变量的查看、设置和删除:
env:用来显示环境变量,显示当前用户的变量。
export:用来设置环境变量。
echo:用来查看指定变量内容。
示例:echo $PATH
或 echo ${PATH}
重要的系统级环境变量:
PATH:当前shell中命令、系统程序、应用程序以及自定义可执行文件的路径。
LD_LIBRARY_PATH:可执行共享库(动态库)的目录链接。
示例:
export PATH=[one_path]:$PATH
注意等号两边不能有空格。