代码编织梦想

浅谈对Linux操作系统的认识

摘要

   本文主要针对Linux 发展历史以及其主要的特征进行了阐述,并且介绍Linux的一些基本的操作,最后对对我国Linux 软件行业今后的发展方向进行了展望。

0. 引言

   Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第一次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。其可以追溯到1969 年,是由美国的贝尔实验室Thompson 以及Richie 发展而来.在最初被开发出来的阶段其采用BCPL 语言来进行编程,在随后的C 语言推出之后,该项代码被改用C 语言进行编程,这便使Linux 操作系统具有较强的可移植性。自从20世纪的80 年代,计算机技术以及软件技术得到了飞速的发展,并且计算机也开始逐渐的进入到家庭当中,便开始开发出了适合个人计算机操作的系统,在这个过程当中微软公司的产品最具代表性,其从MS-DOS 到Windows,随后又从Windows95 到了Windows Vista, 这一系列的Windows 操作系统给用户提供了较为人性化的服务,同时也提供了优质的图形化用户界面,这样便使整体系统操作更加的便捷。但是,该技术在商业上面的垄断也在一定程度上限制了该项技术的发展。
   目前,我国很多科学研究院以及企业都在加大力度开发中文版本的Linux操作系统。虽然在侧重点方面具有较大的差异性,但是各种系统基本上都实现了进一步汉化,具备了可以进行输入以及输出的中文控制台,且在运行过程中的各种命令提示以及错误信息等都能够实现中文表达。

1. Linux操作系统基本组成

   针对于Linux 操作系统来说主要分为四个部分,即Linux内核、Linux Shell、Linux 文件系统以及Linux 应用程序,下面将对于Linux 操作系统组成部分作出分别介绍:

1.1 Linux 内核

   Linux 内核相当于整个操作系统的“心脏”,在系统当中承担着运行程序、管理磁盘等方面的任务。

1.2 Linux Shell

   所谓的Shell 其所指的便是操作界面,并且能够为与内核交互提供相应的接口,其能够对于用户所输入的命令进行解读,随后将其传送到Linux 内核部分开始执行,从其工作的本质上来说,其属于一种命令解释器,用户能够使用Shell 的编程语言来编写Shell 程序,这个程序便能够起到与其他程序设计语言相同的设计效果。

1.3 Linux 文件系统

   所为的Linux 文件系统,其主要便是实现系统文件的存储以及调用,针对于Linux 文件系统来说,其呈现出树形结构,同时其能够支持目前比较常见的文件系统,例如:SMB、NFS、VFAT、FAT 等方面的文件。

1.4 Linux 应用程序

  针对于Linux 应用程序来说,其与Windows 的操作系统一样,都能够供用户进行操作。在实际的应用阶段,Linux 能够提供一套较为人性化的应用程序,基本能够实现上网、办公等方面的需求,同时在其中也包含文本编辑器、X Windows、办公软件、Internet 工具以及数据库等。

2. Linux操作系统特点

2.1 完全符合POSIX 标准

   Linux 完全能够达到POSIX 对系统可移植性接口定义的相关标准,而且还能通过进一步的扩展对AT&T 和BSD Unix 网络操作系统进行支持。这种操作系统不仅在设计思想上完全继承了Unix 优秀的思想,而且内核更加干净、高效,运行更加稳定,完全能够实现对Unix 相关的工具软件、应用程序以及网络协议的良好运行。整个系统具备良好的兼容性,从而使其能够将软件移植的工作量进行进一步削减。

2.2 免费软件

   Linux 本身经过了自由软件委员会所制定的GNU 公用许可证GPL 保护,属于一种完全自由软件。任何一个用户都可以通过Internet 网络下载软件。与此同时,Linux 操作系统配备开放性的源代码,任何用户都能够通过免费的方式来进一步获取Linux 的源代码以及相关可执行程序。这充分表示用户完全可以对整个Linux 中所包含的全部或者部分原代码进行免费使用,而且还可以根据自己的喜好对程序进行进一步编译,以此制定一些特殊的功能,对整个计算机事业的发展起到了极大的促进作用,与此同时也能够让不同的计算机爱好者之间实现更好地交流。

2.3 多用户、多任务系统

   严格来讲,Linux 属于一种多用户、多任务系统,而且该系统完全能够对内核级多线程以及多CPU 良好支持。充分利用一套Linux 操作系统能够在同一部机器上实现多人同时应用,且多用户模式不仅能够在Internet 模式下给予良好支持,而且还能同时实现对多用户不同请求的同时响应,并针对32 位以及64 位多任务处理进行支持。Linux 在设计过程中保留了Unix 系统以网络为核心的设计思想,因此其是一种性能非常稳定的网络操作系统。

2.4 支持多种文件系统

   开发者在实际针对Linux 进行开发的过程中,合理引入了虚拟文件系统的概念。因此其不仅能够完美地支持EXT2 及XIAFS 等两种文件系统,还能对FAT、VFAT、FAT32、NFS、MINIX 和XENIX 等多种文件系统进行支持。

2.5 强大网络功能

   Linux 操作系统能够为用户提供完整的网络集成。因此其网络功能非常强大,这也是目前Internet 以及多数的局域网络服务器在实际运行过程中应用Linux 操作系统的原因

3. Linux常用的shell命令

3.1 关机 (系统的关机、重启以及登出 )

  • 关闭系统

    shutdown -h now 
    
  • 按预定时间关闭系统

    shutdown -h hours:minutes
    
  • 取消按预定时间关闭系统

    shutdown -c 
    
  • 重启

    shutdown -r now 
    
  • 重启

    reboot 
    
  • 重启

    logout
    

3.2 cd命令

命令格式:

cd <路径>

意义:

   cd是change directory 的缩写;cd命令后面跟一个路径,用于切换当前用户所在的路径,其中路径可以是绝对路径也可以是相对路径。

示例:

cd /system/bin  # 表示切换到/system/bin路径下。

cd logs         #表示切换到logs路径下。

cd /            #表示切换到根目录。

cd ../          # 表示切换到上一层路径。

3.3 ls命令

命令格式:

ls <参数> <路径>

意义:

   ls是list的缩写;ls命令后面可以跟一个路径或参数,也可以不跟,表示列出路径或当前目录下的所有文件信息。最常用的的参数是“-l",也就是“ls -l”命令。

示例:

ls /           # 显示根目录下的所有文件及文件夹。

ls -l /data    # 显示/data路径下的所有文件及文件夹的详细信息。

ls -l          # 显示当前路径下的所有文件及文件夹的详细信息

ls *l          # wc显示当前目录下面的文件数量。

3.4 cat命令

命令格式:

cat <文件>

意义:

   cat是concatenate 的缩写。表示读取文件内容及拼接文件。

示例:

cat /sys/devices/system/cpu/online  # 读取 /sys/devices/system/cpu/路径下online文件内容。

cat test.txt                        #  读取当前路径下test.txt文件内容。

3.5 rm命令

命令格式:

rm <文件>rm -r <文件夹>

意义:

   rm是remove 的缩写。用于删除文件或文件夹,常用参数-r -f,-r表示删除目录,也可以用于删除文件,-f表示强制删除,不需要确认。同样的,删除文件前需保证当前用户对当前路径有修改的权限。

示例:

rm -rf path     # 删除path。

rm test.txt     # 删除test.txt。

3.6 mkdir命令

命令格式:

mkdir 文件夹

意义:

   mkdir是make directory 的缩写。用于创建文件夹。创建文件夹前需保证当前用户对当前路径有修改的权限。

示例:

mkdir /data/path          #  在/data路径下创建path文件夹。

mkdir -p a/b/c            #  参数 -p用于创建多级文件夹,这句命令表示在当前路径下创建文件夹a, 而a文件夹包含子文件夹b,b文件夹下又包含子文件夹c。

3.7 cp命令

命令格式:

cp <文件><目标文件>或者cp -r<文件夹><目标文件夹>

意义:

   cp是copy 的缩写。用于复制文件或文件夹。

示例:

cp /data/logs /data/local/tmp/logs    # 复制/data路径下的logs到/data/local/tmp路径下。

cp 1.sh /sdcard/                      # 复制当前路径下的1.sh到/sdcard下。

3.8 kill命令

命令格式:

kill PID码

意义:

   结束当前进程

示例:

#先通过输入命令:
ps au         
#查看进程,找到需要终止进程的PID再通过kill PID即可,如我这里想要终止的进程是vim test.py,查到的PID是3163,我们可以输入kill 3163结束这个程序,如果结束不了,可以通过kill -9 PID码强制结束,即kii -9 3163

4. 国内Linux操作系统的发展

  国内的linux操作系统基本多以二次开发的操作系统为主,这里不做过多的介绍,主要介绍一款我用过的国产linux操作系统。
  Deepin深度操作系统是基于debian发行版内核修改而来的国产linux系统,虽然还是linux系统而且是二次开发,但单独从使用体验上来说已经是国内最好的linux操作系统了,作为针对国内深度定制的操作系统,深度linux有很多非常有趣的地方,首先就是安装方面,deepin的安装相比其他linux的安装来说已经属于非常轻松的一类(然而在linux的世界里没有容易二字),只要你有一个能够随便格式化的U盘和互联网就可以了,将U盘通过深度系统启动盘制作工具制作成引导启动盘,然后进入引导、全程点击鼠标就可以了,因为是国产系统所以有着原生简繁体中文支持。Deepin的使用体验和其他的Linux原生发行版不太一样,看起来有些偏近于Arch,但实际上手的体验相比Arch要简单很多,尤其对于windows用户非常友好,真正的使用感受有些接近windows口味的Mint,不过deepin的桌面环境是完全自研的,这点属于一个双刃剑,完全针对国人自研桌面环境会影响开发者的软件安装逻辑、使用逻辑,但会给使用者更好的体验,这点Deepin目前做得不错,开发者也都适应了deepin的逻辑,桌面环境的改动从开发角度来说不算离经叛道,而观感很接近Mac、使用感受很接近Windows。
   总体来说,Deepin系统适合开发者、学生、服务器用户、linux爱好者以及想要入门linux的新人使用,但从目前的linux大环境来说并不建议任何电脑小白以及想要将其当做主力系统、日常系统来用的人去尝试,学习成本相对于windows肯定是要高一些,未来deepin一定会发展得越来越好。

结语

   linux系列的操作系统适合开发者、学生、服务器用户使用,使用linux操作系统需要具备很强的动手能力和探索精神。喜欢折腾的同学可以先使用虚拟机试试,第一次使用最好不要安装到真机上。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_42926939/article/details/105327469

一篇文章教你如何架设CSGO服务器-爱代码爱编程

与我的博客同步更新GamerNoTitle的博客 不常上CSDN,有问题请到我的博客的对应文章下面的评论区留言或者直接跟我QQ沟通,QQ在我的个人网站的关于界面有 "GOGOGO"最近我身边的小伙伴们都拉我打CSGO,还想打内战……然后就让我架设一个社区服务器。讲真,架设社区服务器的坑挺多的,我会在文中尽量把我架设服务器的过程给叙述完整,帮助你们,同样也

centos tail命令日志查询(tail命令、分页查询等)-爱代码爱编程

linux系统中 tail 命令可用于查看文件的内容 1 tail 在centos 或者说是在 linux 系统中,例如 tomcat 或者是 ngixn 的log 日志等等 tail -n 20 error.log 查看 error.log日志文件中的最后 20行 日志内容 tail -n +20 error.log 查

Mac下安装mysql-爱代码爱编程

下载安装包 打开 mysql官网,点击downloads之后跳转到https://www.mysql.com/downloads 选择Community选项点击了downloads选择的Community, 下载对应版本的程序点击下载,安装包下载下来以后,解压进行安装安装 双击打开已经下载好的dmg文件,弹出pkg的弹窗,在双击pkg的图标,进入安装界

进程通信基础01_Linux管道-爱代码爱编程

进程通信基础01_Linux管道 原理理论例子 原理 理论 例子 #include <iostream> #include <unistd.h> #include <sys/wait.h> using namespace std; int main() { int fd[2]; int ret,

为何需要段页式内存管理-爱代码爱编程

为何需要段页式内存管理 为何需要虚拟内存空间? 虚拟内存是计算机系统内存管理的一种技术,它使得进程认为它拥有连续可用的内存,而实际上在物理内存中,它通常被分割成多个内存碎片,还有部分暂时被交换到外部磁盘上。 每个进程都有独立的虚拟内存空间。虚拟内存空间的存在,对于操作系统来说,使得每个进程运行时互不干扰;对于硬件来说,不要求物理内存存在连续的一段空间

CentOs7(Linux)系统的安装-爱代码爱编程

安装准备 选择阿里的镜像文件下载CentOS7 http://mirrors.aliyun.com/centos/7/isos/x86_64/标准安装版http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1908.iso 带图型界面http://mirrors.aliyu