1 、一定的英文基础是必要的,需要了解C语言和C++。针对学习shell编程,及熟知各种Linux系统命令使用即可。如果有python或perl基础则更容易上手。
2、 看书时要多做习题,一题一题的弄明白,要不书也白看。从一开始养成良好的编程习惯,怎么算好的你看书上的代码怎么写的。
3、关于数学, 初中数学水平可以编程,小学甚至学前班也没什么不可以。 另一方面数学博士编程的时候也不会嫌自己数学学的太多了。 需要多少数学这跟你要做的东西很有关系, 也影响到你学习的深入程度, 工作中就影响你的代码质量。 总的来说数学水平是越高越好, 但并没有一个门槛, 什么水平都可以学, 就是质量差一些。
4、学习Linux内核开发。Linux的内核是由绝大部分的C语言和少部分汇编语言组成的。要学习Linux内核开发,必须要懂C语言,同时对 *** 作系统原理需要有一定了解。
5、学习Linux平台上的软件开发。这部分包含很广,有各种各样的要,需要根据项目性质确定基础需求。
Linux *** 作系统软件包不仅包括完整的Linux *** 作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行 *** 作。
涉及到的东西很多,比如理论上的包括linux理念自由软件思想还有这个圈子的文化等;技术上多动手 *** 练 *** 练,尤其是命令,首先你需要先了解命令的作用是什么,然后在终端中输入命令,看看会出现什么效果。
Linux是一套免费使用和自由传播的类Unix *** 作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
就像我们了解的Windows和Mac OS,linux也是一个 *** 作系统。如下图,linux就是系统调用接口和内核那两层。
通过上面的说明,我们知道了 Linux 其实就是一个 *** 作系统最底层的核心及其提供的核心工具,任何人均可取得核心码与可执行这个核心程序,并且可以修改。此外,由于linux参考POSIX设计规范,于是 兼容UNIX *** 作系统,故可称为Unix Like的一种。
为了让一般使用者能够接触到linux,很多的商业公司和非盈利团体,就将linux kernal(含tools)与可运行的软件整合起来,加上自己具有创意的工具程序,这个工具程序可以让用户以光盘/DVD或者透过网络直接安装和管理linux系统。这个 kernal+softwares+tools的可完全安装 ,我们称其为 linux distribution(可完全安装套件、linux发布商套件)
对于linux来说,所有的程序和系统装置都是文件, 一切都是文件。
由于利用 Linux 来开发产品或distributions 的社群/公司与个人很多,若是每个人都用自己的想法来配置文件放置的目录,就会造成个人不能使用他人的linux系统的PC。因为你根本不知道一些基本的配置,文件在哪里,这就造成了混乱。所以,就有所谓的 Filesystem Hierarchy Standard(FHS) 标准出炉了。
也就是说,FHS 的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。
事实上,这个 FHS仅是规范出在根目录 ( / ) 底下各个主要的目录应该是要放置什么样的文件而已。 FHS 定义出两层规范出来,第一层是 / 底下的各个目录应该要放置什么样内容的文件数据,例如 /etc 应该要放置设定档, /bin 与 /sbin 则应该要放置可执行档等等。第二层则是针对 /usr 及 /var 这两个目录的次目录来定义的。 例如 /var/log 放置系统登录文件、 /usr/share放置共享数据等等。
在一个文件系统中,我们总有一个被称为 根目录 的东西,这个根目录里包含了所有其他目录和文件。
在Windows中,可以有好几个根目录,比如说C盘(C:\)是你的硬盘的根目录,H盘可能是你的光盘驱动器的根目录。
Linux中有且只有一个根目录,就是 / 。
如果以较为完整的树状目录来视察的话, 可以将整个 Linux 的树状目录绘制成下图:
Linux是一个真实的、完整的 多用户多任务 的 *** 作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一系统执行各自不同的任务,而互不影响。例如某台Linux服务器上有4个用户,分别是root、www、ftp和MySQL,在同一时间内,root用户可能在查看系统日志,管理维护系统;www用户在修改自己的网页程序;FTP用户可能在上传软件到服务器;MySQL用户在执行自己的sql查询,每个用户互不干扰,有条不紊地进行着自己的工作,而每个用户不能越权访问,比如www用户不能执行MySQL用户的查询 *** 作,FTP用户不能修改www用户的网页程序,由此可知, 不同用户具有不同的权限,每个用户在权限允许的范围内完成不同的任务,Linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。
Linux下用户是根据角色定义的,具体分为三种角色:
超级用户 :系统管理员,拥有对系统的最高管理权限,默认是root用户
普通用户 :只能对自己目录下的文件进行访问和修改,具有登录系统的权限,例如上面的www、FTP用户等
虚拟用户 :也叫“伪”用户,这类用户最大的特点就是不能登录系统,他们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。例如系统默认的bin、adm、nobody用户等,一般运行的web服务,默认就是使用的nobody用户,但是nobody用户是不能登录系统的。
Linux是一个多用户多任务的分时 *** 作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。
每个用户有用一个唯一的用户名和用户口令。
用户组是具有相同特征用户的逻辑集合 ,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理;另一种方法就是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有的用户就具有了和组一样的权限,这就是用户组。 用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,很大程度上简化了管理工作。
用户和用户组的关系有:
一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员
一对多:即一个用户可以存在多个用户组中,那么此用户具有多个组的共同权限。
多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限
多对多:多个用户可以存在多个组中。
linux的语言是c语言写的,c语言是严格区分大小写的,linux命令中大小写也是完全不同的。
终端展现:
登录linux终端后,linux默认的命令行提示信息的格式:
说明 :有些命令即使你使用su root 切换到root用户,仍无法执行。所以还是建议使用su – root
x (access directory): x 与能否进入该目录有关
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)