初步认识Linux系统

news2024/11/16 0:58:56

前言

        Linux系统具有许多优点,不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。

        和我们日常使用的window系统有所不同。Linux通常用在后端之上,根据不同的用途有不同的适配版本。在学习之上,我使用的是Centos7 + Ubuntu20.04/22.04.前期使用的是Centos7。和目前使用的window系统最大的不同在于,Linux系统不是图形化的界面,对于大众使用起来不是很方便。

        本博客会设计到一些历史方面关于计算机和Linux系统,文字部分会比较多。然后会简单的涉及到Linux的简单操作,只会比较简单的。然后会用Linux写一个简单的C语言文件并且在Linux系统上跑起来。

一、计算机发展历史

1、计算机历史

        第一台计算机出现于1945年2月14日,名称是埃尼阿克。

        之后有科学家提出了摩尔定律其核心内容为:集成电路上可以容纳的晶体管数目在大约每经过18个月到24个月便会增加一倍。换言之,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半。

        这条定律预示了计算机的小型化和高性能化,于是计算机私人公司分为了两种派系。一种是认为计算机只能面向于企业做大型计算机的,例如:IBM公司等。另一种是面向个人的计算机,例如:苹果、微软、英特尔等公司。

        在出现众多计算机,并且计算机对于民众持有率提升之后,就形成了“计算机+互联网”的时代。两种派系的分别发展,也在此时合二为一。

        再往后走进入了pc互联网时代,直到现在手机的新起。智能手机其实也是一台计算机,于是进入了移动互联网时代。

2、计算机系统的历史

        计算机的功能主要包括三步:输入->计算->输出。

        随着计算愈来愈复杂,操作系统的出现就成为了必然。

        首先诞生的是Unix,当时的系统使用的是汇编语言。在诞生了C语言之后,两位大佬肯汤普森和丹尼斯里奇对Unix操作系统进行了重写,于是出现了苹果OS和微软OS。

3、Linux的诞生

        随着计算机的小型化,以及计算机出现了操作系统后。计算机必然会进入高校中。

        1991年芬兰赫尔辛基大学的学生林纳斯·本纳第克特·托瓦兹基于Unix自己编写了一款操作系统,这就是最初的Linux。并且直接将Linux进行了开源。

        这个时候的所有操作系统刚开始诞生,都没有图形化的界面。

二、Linux介绍

1、主要特征

1.1、基本思想

        Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

1.2、完全免费

        Linux是一款免费(或自由,即free)的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

1.3、兼容POSIX

        这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

1.4、多用户、多任务

        Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现代电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

1.5、良好的界面

        Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

1.6、支持多种平台

        Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

2、系统功能

        系统内核的路由转发

        Linux操作系统嵌入了TCP/IP协议栈,协议软件具有路由转发功能。路由转发依赖作为路由器的主机中安装多块网卡,当某一块网卡接收到数据包后,系统内核会根据数据包的目的IP地址,查询路由表,然后根据查询结果将数据包发送到另外一块网卡,最后通过此网卡把数据包发送出去。此主机的处理过程就是路由器完成的核心功能。 

        通过修改Linux系统内核参数ip_forward的方式实现路由功能,系统使用sysctl命令配置与显示在/proc/sys目录中的内核参数。首先在命令行输入:cat /proc/sys/net/ipv4/ip_forwad,检查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,配置便立即启用。 

3、系统优势

3.1、代码开源

        Linux由众多微内核组成,其源代码完全开源;

3.2、网络功能强大

        Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;

3.3、系统工具链完整

        Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;

三、Linux安装

        因为Linux是开源的,所以可以直接去网站下载(www.kernel.org)。我们电脑已经window系统所以,使用Linux需要安装虚拟机,或者直接换掉系统。

        这里我用的是另一种方法,在网上挑了云服务器,安装Linux系统用。关于云服务器使用手册如下:

        (1)挑选最便宜的云服务器,因为我们的代码不是用于商用或者大型企划。

        (2)找到云服务器的实例,找到你的公网IP。

        (3)注意系统的选择使用的系统是centos7或者Ubuntu20.04/22.04.

        (4)云服务器实例中首先能够重置root密码。

        (5)安装登录软件,例如xshell等,也可以使用云服务自带的登录器或者电脑的命令控制符,window的系统也是可以链接Linux的。

        (6)开始登录

四、Linux的使用

        我使用的云是腾讯云,用的是轻量级应用服务器,因为有一个月的试用,所以暂时不花钱。如果长期使用,华为云会更加好一些,便宜。总之什么适合你就用啥就行。

1、登录

        如果在登录器上登录,很简单输入IP和密码登录即可。进入以下界面就表示登录成功了:

        如果使用命令控制符登录可以输入 "ssh root@(IP地址)",IP地址如下,用黑笔图了的地方,每个人IP都不同:

        进入了之后输入密码登录,这里密码不回显,所以不要乱按。

        到这里就算链接完成了,如果没有显示。

2、命令操作

        因为Linux是命令操作,所以我们需要熟系有哪些操作命令。

2.1、登录账户/账户操作

        使用“whoami”能够查看登录使用的身份:

        这里第一次登录使用的是root也就是最高权限账户,我们也可以创建子账户。在那之前我们可以看看服务器上有哪些能够登录的账户“ls /home/”:

                这里就能看出来有两个账户,如果我们没有这么多账户希望新建一个子账户使用“useradd”创建对应账户的名称:

        这个时候需要修改用户密码,使用“passwd + 用户名”,注意这里用户的密码不能太短或者太简单,同时会要求重复输入两次密码。另外,输入的密码也是不回显的:

        以上是密码重复输入错误和密码太简单的举例,正确的如下:

        最后一句的意思就是修改成功了。

        如果不需要这个账户也可以使用“userdel -r + 用户名”删除,不要直接“userdel  + 用户名”,不然系统会出问题。这个时候查询的用户在,但是不能使用。正确方式如下:

        这样关于用户的操作就完了。

2.2、clear

        “clear”能够清理操作界面:

        这里加回车之后,界面就回到第一行,且之前的操作都看不见了。

2.3、ls + 其他指令

        ls指令的作用是查找文件夹之下有什么文件,如果需要查找当前目录下的文件有许多相关指令:

        (1)#ls:查找当前目录下的文件名.

        我们这里先返回到根目录“/”处,然后就可以使用ls查看当前目录下有什么内容。

        这里蓝色的字体都是文件,不同颜色表示不同作用。

        (2)ls -l 和 ll :查看文件的更多属性。

        “ll”操作其实是“ls -l”的重命名,使用之后结果如下:

        这里d开头的“dr-xr-x---”表示这是一个目录,其他开头表示另外性质的文件。

        所以再ls后面增加“-l”能够然文件信息更加详细。

        (3)ls -a:显示全部文件(显示隐藏)

        像我们window系统也有隐藏的文件Linux也一样。用上面的命令就能查看所有文件。

        我们先进入“root”目录,然后使用两种方式查看,能够看到“ls -a”能够看到“.”开头的文件,这些文件就是隐藏文件。

        (4)指令组合

        像“-a”,“-l”这样的指令能够组合使用,可以用任意顺序组合,效果都是一样的。例如“ls -a -l”、“ls -l -a”、“ls -al”、“ls -la”。这些指令都是查看目录下所有文件的属性。

        可以看到有“.”、“..”文件,这个文件是每个目录都存在的,“.”的作用是表示当前目录,“..”的作用是上级目录。

2.4、cd + 目录地址

        cd的作用就是移动自己所在的地址,例如“cd ..”表示返回上级目录,“cd ./root”表示进入当前目录的root目录文件。这里的地址可以写的很详细,但是“cd root”和“cd ./root”的作用是一样的。也就是说能够当前文件夹这样的写法是可以实现的。“cd”指令在上面的文件操作中使用过了,所以不再举例。

2.5、pwd

        pwd能够打印当前所处路径:

        那么现在我们处在根目录下。移动到root就到了root目录下:

2.6、mkdir

        我们能够创建新的目录,mkdir:增加目录,使用方式:mkdir + 文件名:

        如果我们想建立一串目录,就需要增加指令“-r”。例如我想创建a/b/c/d,如果直接用“mkdir”是无法创建的,增加指令“-r”才行。

        这了的tree指令能打印当前文件夹之下的文件,并将子文件展开。

        如果无法使用tree命令,在centos下使用指令“yum install -v tree”安装tree命令。

2.7、stat

        stat能够查看文件的属性,包括创建时间、大小等等文件信息内容,这写内容对于window系统也一样。需要有一些信息来维护这个文件。

        window:

2.8、which

        which能够查找文件所在的位置:

        但是需要设置环境变量计算机才能找到,这里举例查找的都是之前写过的指令,同时也说明这些指令也是人为写好的文件。

        查找之后下面一行就是文件所在的路径。

        这里的alias表示的是取别名的意思。

2.9、rmdir

        “rmdir”能够删除空目录:

        但是不能删除除空目录以外的文件,如果需要删除文件请使用“rm + 文件名”。

        同样的这里之前创建的文件“a”也不能删除,因为它的下面有:b/c/d。但是一个一个删除太麻烦了,我们可以使用“rm + -r + 文件名”来删除递归文件。

        这里因为使用的是root用户,他的权利太大,所以删除文件的时候系统会问你要不要删除,如果要删除再用“y”确认即可,不想删除就输入“n”。使用其他用户删除自己创建的文件时不会询问。

        如果你不想让系统问,也可以增加“-f”指令,让系统不询问是否删除。但是需要注意的是,这条指令不要乱用,因为不会询问,如果在根目录直接用“rm -r -f /”那么这个系统就完蛋了。所以需要注意自己的权限,以及指令不要乱用,不然系统挂了在公司里要追责的。

        当然如果是其他用户在根目录下也不会让你删除东西,除了root用户。如果是自己学习的时候买的云系统,现在大家还能用root用户在“/”目录下使用“rm -r -f /”,之后等着重装系统就完了。

        总之删除命令不要轻易加“-f”。

2.10、man

        “man + 文件名”能够查看当前文件的手册,例如“man ls”能够查看ls的作用:

        按q退出。

        当然其他的也能够查看,例如“man man”:

        

        使用方法还是很简单的,如果想查看C语言的手册可以增加指令“3”:

        在那之前需要使用指令“# yum install -y man-pages”对指令进行下载。“man”找的是函数的,所以不要去找库或者关键字的手册,因为没有。

        用“man”查找“printf”也能查找出来,但是这个“printf”不是C语言的“printf”,而是Linux自己的“printf”,Linux的“printf”能够在自己的界面上打印字符串。使用方式和C语言类似,这里不过多描述了。

3、Linux下第一个C语言文件

        首先使用“#vim code.c”创建并进入code.c文件:

        书写C语言内容如上所示。按“Esc”再按“CTRL+z”退出。

        如果要重新进入“code.c”文件使用命令“cat”,例如“cat code.c”。

        使用gcc编译代码,之后会出现对应可执行文件“mycmd”:

        该文件直接打开就能使用。

五、Linux相关知识点

        该章节内容是对第四章节的一个补充,知识点和代码操作不分家。系统中的这些相关知识点其实对于所有系统都是类似的,因为他们都来自Unix。

        在电脑中无论是Windows还是Linux,目录 == 文件夹。

        如果建立一个空文件,虽然该文件中没有内容但是也要占据空间。因为维护文件的存在需要有维护文件的内容,这些信息也是储存在电脑中的。

        文件 = 内容 + 属性

        那么文件的操作分为两种,一种是对文件内容操作,另一种是对属性进行操作。

        例如“ls”就是显示文件属性,只有ls就只显示文件名。用“ll”或者“ls -l”会显示详细信息,显示“d”开头表示:目录,“-”开头表示普通文件。

        Windows中:“\”是路径分隔符,Linux中:“/”是路径分隔符。

        每个目录都有连个隐藏目录“.”“..”。分别表示当前目录和上级目录。

        Linux的文件结构,是一颗从根目录“/”开始的多叉树:

        a.叶子结点:一定是普通节点或者空目录。

        b.非叶子节点:一定是非空目录。

        文件中分为相对路径和绝对路径,这个道理和Windows是相同的。

        在路径或者文件名中可以用“*”表示不确定的部分,在前或者在后。

结语

        本节的重点在于Linux的进入以及简单的操作,然后需要认识到,对于电脑来说所有的操作其实都来源于文件。像windows的桌面,其实也是一个文件。我们进入系统会默认用用户登录然后进入用户的初始界面,最后显示图像出来。实际上桌面也是一个文件夹,我们可以在C盘的user中找到对应的桌面文件,里面的内容和桌面上的显示相同。

        大致就是这样,可以说文件是计算机系统的基础。

        下一篇博客可能会出的晚点,主要是实现用于实操去了。总之,感谢大家的支持了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2046933.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRTOS互斥量

文章目录 一、互斥量的使用场合二、互斥量函数1、创建2、其他函数 三、示例: 优先级继承四、递归锁1、死锁的概念2、自我死锁3、函数 怎么独享厕所?自己开门上锁,完事了自己开锁。 你当然可以进去后,让别人帮你把门:但是&#xff…

Linux驱动入门实验班——步进电机模块驱动(附百问网视频链接)

目录 一、工作原理 二、接口图 三、真值表 四、编写思路 1.构造file_operations结构体 2.编写入口函数 3.编写出口函数 4.编写write函数 五、bug记录 六、源码 课程链接 一、工作原理 步进电机由定子和转子两部分组成。定子上有多组线圈,通常称为相&…

8.16 mysql读写分离架构+MyCAT实现读写分离

1、读写分离的目的 数据库负载均衡: 当数据库请求增多时,单例数据库不能够满足业务 需求。需要进行数据库实例的扩容。多台数据库同时相 应请求。也就是说需要对数据库的请求,进行负载均衡 但是由于数据库服务特殊原因,数据库扩容…

《SPSS零基础入门教程》学习笔记——05.模型入门

文章目录 5.1 回归模型5.2 分类模型5.3 降维和刻度模型5.4 生存分析和时间序列模型 5.1 回归模型 线性回归(分析 -> 回归 -> 线性)曲线估计(分析 -> 回归 -> 曲线估计) 二元Logistic回归(分析 -> 回归…

Centos7主机带宽限速

需求:最近有两个主机经常把带宽打满。咨询了阿里云无法对内网网卡做限制。这边想使用linux默认的TC工具。 限速之前测试带宽。这时带宽有 168.4MB/s。 ]# scp filebeat-8.8.2-x86_64.rpm 172.116.47.54:/root/100% 26MB 168.4MB/s 00:00 1. 限制出站&#xff0…

数据结构入门——08排序

1.排序 1.1什么是排序 排序是一种操作,通过比较记录中的关键字,将一组数据按照特定顺序(递增或递减)排列起来。排序在计算机科学中非常重要,因为它不仅有助于数据的快速检索,还能提高其他算法的性能。 1…

PostgreSQL-03-入门篇-过滤数据

文章目录 1. WHEREWHERE 子句概述WHERE 子句示例1) 使用 WHERE 子句和等于运算符 () 示例2) 使用 WHERE 子句和 AND 运算符示例3) 使用 WHERE 子句和 OR 运算符示例4) 使用 WHERE 子句和 IN 运算符示例5) 使用 WHERE 子句和 LIKE 运算符示例6) 将 WHERE 子句与 BETWEEN 运算符一…

自动化运维---ansible

ansible是一种由Python开发的自动化运维工具,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 特点: 部署简单 默认使用ssh进行管理,基于py…

【LLM大模型论文日更】| 大型语言模型用于模拟搜索用户行为

论文:https://arxiv.org/pdf/2403.09142代码:未开源机构:中国人民大学高瓴人工智能研究院领域:信息检索发表:SIGIR2024 短文 Abstract 由于成本效益和可再现性方面的优势,用户模拟已成为信息检索系统面向用…

Python酷库之旅-第三方库Pandas(084)

目录 一、用法精讲 351、pandas.Series.str.isdigit方法 351-1、语法 351-2、参数 351-3、功能 351-4、返回值 351-5、说明 351-6、用法 351-6-1、数据准备 351-6-2、代码示例 351-6-3、结果输出 352、pandas.Series.str.isspace方法 352-1、语法 352-2、参数 3…

【 亿邦动力网-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …

钢铁百科:美标A633GrC材质分析、A633GrC正火状态、A633GrC材料性能

A633GrC钢板是一种美国ASTM标准的高强度低合金结构钢板,字母"A"代表钢(Steel),数字"633"表示该材料的牌号,而"GrC"表示该材料为高强度低合金钢(High Strength Low Alloy&…

wtv-next 宝塔更新教程

数据库升级办法 输入用户名密码,点执行 程序升级办法 文件后缀看清楚,是amd64、arm64。etc 目录下是配置文件,按照格式往下加就行。 回到刚才那个页面 先点停止,再点启动

【大模型部署及其应用 】RAG检索技术和生成模型的应用程序架构:RAG 使用 Meta AI 的 Llama 3

目录 RAG检索技术和生成模型的应用程序架构1. **基本概念**2. **工作原理**3. **RAG的优势**4. **常见应用场景**5. **RAG的挑战**6. **技术实现**参考RAG 使用 Meta AI 的 Llama 3亲自尝试运行主笔记本与文档应用聊天关键架构组件1. 自定义知识库2. 分块3. 嵌入模型4. 矢量数据…

GAMES104:08游戏引擎的动画技术基础-学习笔记

文章目录 一,动画技术简介动画技术的挑战 二,2D游戏动画技术2.1 精灵动画(sprite animation)2.2 Live2D 三,3D游戏动画技术3.1 基于层次的刚体动画3.2 顶点动画3.3 Morph Target Animation3.4 蒙皮动画3.4.1 2D蒙皮动画…

房产系统源码开发

一、开发需求: 信息录入与管理:系统需要支持各种数据的录入,这包括但不限于客户信息、房源信息、员工信息、合同信息和财务信息等。这些数据是房产系统的基础,对于后续的信息查询、分析和共享至关重要。信息查询与检索&#xff1…

Ports Number of field profile samples 参数设置

Ports Number of field profile samples 参数设置 正文正文 在进行 Port 仿真时,通常我们会对 port 端口中的光束模式进行设定,很多时候我们会遇到一个名为 Number of field profile samples 的参数,如下图所示: 如果去官方论坛查看解释,往往会被搞得云里雾里。这个参数…

什么是AR、VR、MR、XR?

时代背景 近年来随着计算机图形学、显示技术等的发展,视觉虚拟化技术得到了广泛的发展,并且越来越普及化,慢慢的也走入人们的视野。目前市场上视觉虚拟化技术的主流分为这几种 VR、AR、MR、XR。这几项技术并不是最近才出现的,VR的…

RabbitMQ 的工作原理

下面是rabbitmq 的工作原理图解 1、客户端连接到消息队列服务器,打开一个channel。 2、客户端声明一个exchange,并设置相关属性。 3、客户端声明一个queue,并设置相关属性。 4、客户端使用routing key, 在exchange和queue 之间…