① linux系统管理员需要掌握哪些知识
要成为一名合格的LINUX管理员,一般来说都要懂得如下几点规则:
规则1:了解LINUX的一切。首先,在了解以下规则之前,笔者必须向大家说明的是,即使最基本的LINUX系统管理员都是要经过不断的学习和长时间实践才能真正了解整个LINUX操作系统和网络的。如果您还是一名刚刚入门的LINUX新手或者对LINUX了解不多,在这样的情况下如果要成为一名合格的LINUX系统管理员,那么笔者建议您先花点时间和耐心学习和了解清楚LINUX,如果您对LINUX有足够的了解,能够像操作WINDOWS那样熟悉LINUX了,那您就可以进一步学习,去实现一个合格的LINUX系统管理员的梦想了。
规则2:如果您不能真正的了解LINUX的一切,那最少要知道如何才能找到,在哪里才能找到您所需要的LINUX信息和知识。一般来说,作为LINUX系统管理员,您至少有几本比较全面的LINUX工具书,其中最好包括LINUX安装,LINUX网络配置,LINUX系统分析,LINUX使用大全之类的原版工具书。国内大多数的LINUX工具书为翻译外国的。在这里也向大家推荐基本比较好的工具书,尽供您参考选购:
《RED HAT 6 大全》--机械工业出版社(LINUX与自由软件资源丛书)ISBN 7-111-07946-9
此书内容翔实,涉及领域广泛,并且提供了详细的例子和大量的参考资料,包括书籍,光盘和电子文档和INTERNET站点,是一本学习,使用和管理LINUX的较好工具书。适合LINUX中级用户。
《LINUX常用技术大全》--电子工业出版社出版 ISBN 7-5053-5460-2
此书摘录了LINUX文档项目中的上千页资料,提供了LINUX操作系统的综合信息。本书符合各种计算机用户使用。中级用户可以通过此书更加深入的了解和利用LINUX。高级用户可以将此书作为使用LINUX操作系统的高级参考手册。
《红旗,RED HAT LINUX开发及网络应用》--人民邮电出版社出版 ISBN 7-115-08978-7
此书适合广大LINUX爱好者阅读,对使用LINUX的组网用户和提供管理员有很大的帮助。
有了以上这些工具书也许并不能完全满足一个系统管理员的需要,毕竟没有一本书是完全能概括LINUX的全部的。您这时需要学会如何从一大堆的书籍和资料中查找到您需要的知识和信息。另外需要指出的是,由于世界上有很多种LINUX发行版本,每一种LINUX发行版本的操作和使用甚至参数配置文件都不尽相同,所以建议大家在购买,下载LINUX发行版本的时候注意购买该版本的官方版的资料和参考书籍,以方便今后管理系统之用。
规则3:如果您无法从各种渠道获取您所需要的信息,请试着用自己的方法来解决问题。不是所有的LINUX故障书籍上都有解答,也许这些您遇到的希奇古怪的问题别人也无法回答您,这时候您就需要自己动手动脑来研究解决了。最后建议您在LINUX自由论坛上公布您遇到的问题和解决方案,以方便别人在遇到同类问题的时候无需花费太多的精力来解决。
规则4:随时准备一本便于携带的LINUX系统用户参考手册,您在旅途中,在等公共汽车的时候,在任何空闲的时间来阅读。这可是国外一名资深的LINUX系统管理员的成功经验。他说他在学习LINUX的时候每天都要花上2-3个小时的空闲时间来仔细阅读各种LINUX命令,来研究LINUX的安全问题。毕竟LINUX是一个正在发展的操作系统,如果没有足够的时间对它的方方面面进行研究的话,您很难成为一名优秀的LINUX系统管理员。
除了以上这些学习LINUX的门道之外,成为一名合格的LINUX系统管理员更重要的是要掌握很多技巧和专业知识。
技巧1:熟悉TCP/IP和LINUX提供的各种网络服务,如DNS,SMTP,UDP,HTTP,FTP,POP3等等。以及要知道LINUX程序, LINUX平台下软件的安装,调试和维护。总之,和LINUX有关的知识懂得越多越好。
技巧2:如果可以的话,最好能熟悉尽可能多的操作系统。这一点很重要,很多朋友也许认为作为一名LINUX系统管理员只有精通LINUX就可以了。事实上LINUX提供了网络服务,很多其他的操作系统都有可能作为客户端,所以作为LINUX系统管理员,有时候您不得不需要解决LINUX和其他的操作系统之间的通讯,安全等问题。一般,熟悉微软的WINDOWS系列操作系统不难,重要的是我们应该对Solaris,Linux,IRIX,HPUX,PPC等系统及其硬件平台都要有所了解。
技巧3:熟悉网络,网络理念和硬件。操作系统是管理整个计算机硬件的最大的程序,LINUX也不例外。无论是台式PC还是笔记本电脑,甚至是大型的网络服务器,LINUX都能对其进行很好的管理。这就要求LINUX系统管理员要熟悉LINUX所控制的硬件平台,因为只有这样才能很好的发挥计算机硬件的最大优势。其实,如果LINUX不是用来提供网络服务,那就是极大的浪费了,大家都知道LINUX要比微软的操作系统稳定、安全。要记住,LINUX能提供一整套很完整的网络服务,如果您在商业公司作一名LINUX系统管理员,那么您必须要对网络及其网络理念有清楚的认识,能够独立完成整个网络和网络服务的配置工作。
技巧4:备份系统和文件恢复。这是LINUX系统管理员最重要的工作之一。每天对LINUX系统和重要文件进行备份是一名有责任心的LINUX系统管理员必须做的工作。事实上,对LINUX系统和文件进行备份无论从硬件还是软件技术上目前都没有什么太大的问题,问题往往出现在系统管理员忘记备份文件或者抱着侥幸的心理,一旦您的LINUX服务器受到攻击,文件损失殆尽,那么您就无法恢复原有文件,一切损失的责任也只能由您负责了。选用LINUX中的定期备份软件和好的备份磁盘磁带都能为您节省不少备份的时间。只要您做到经常,定期备份数据,那么即使LINUX服务器出了再大的问题,一切都能恢复原样的。
技巧5:掌握好一门脚本语言。大家都知道很多LINUX软件的安装都是通过脚本语言来进行的。BASH和PERL是不错的选择。掌握脚本语言另外一个很大的优势就在于能读懂其他LINUX程序员的程序和开发构想,也能方便您在需要的时候修改别人的程序。PERL语言功能强大,学习起来也比较容易。
技巧6:注意LINUX的安全问题。这也是LINUX当中最复杂,最富有挑战性的话题了。同时,LINUX的安全问题也给LINUX系统管理员很大的压力。我认为,安全性实际上取决于用户遵循某种策略的自觉性,安全性措施在很多操作系统上和许多公司中造成了冲突。用户需要完成他们的工作,系统管理员需要把不合理的请求拒之于系统之外;公司管理部门需要保守公司的机密,在许多方面,安全性是最难取得用户配合的领域,但是实际上这是最重要的领域。
对于LINUX系统管理员来说,我可以提供的一个忠告就是:“最好的用户也只是根据您所遵循的策略去做,如果您有忽视安全性的坏习惯,他们就只能更糟糕。”从另外一个方面来说,人们通常提出要求显示或者查看最底层的消息,这超出了系统管理员的职责范围,应友好的指出并做改进。与此同时,要极力阻止那些企图通过LINUX后门进入系统的黑客。由于LINUX的安全问题覆盖的范围很广泛,限于篇幅,在这里也就无法进行谈论了。
有人曾经说过,点滴知识就能获得长久的应用。这句话对于那些想成为或者已经成为了一名LINUX系统管理员是再合适不过的了。
② 为什么程序员都喜欢Linux操作系统
1.开源
这个我想不用解释。
2.多用户、多任务、多线程
Linux系统同时可以支持多个用户,每个用户对自己的文件设备有特殊的权利,能够保证各用户之间互不干扰,就像手机开了助手一样,同时登陆多个qq账号,当硬件配置非常高时,每个用户还可以同时执行多个任务、多个线程同时工作、提高效率,简直是完美的一塌糊涂,单凭多用户而言就完爆其他操作系统。
3.稳定性和高效性
你也许会听到Windows服务器长时间运行而突然宕机,但你绝不会听到Linux系统服务器因为长时间不关机会卡死,在Linux上几乎是不会出现这种情况的。Linux服务器可以无休止的运行下去不宕机,因为它继承了Unix卓越的稳定性和高效性。正因为它的稳定才获得了众多用户的青睐,因为它的高效,它的使用范围更加广阔,然而Linux还可以提供一些高可靠性的服务,比如:LNMP、虚拟化、数据库服务等等。
4.安全性和SELinux
其安全性相比其他系统也要安全很多,由于Linux拥有相当庞大的用户和开源社区支持,因此能很快发现系统漏洞,并迅速发布安全补丁及时更新,同时还具有很强的“免疫力”特点,很少受到病毒攻击,对于一个开放式系统而言,在方便用户的同时,很可能存在安全隐患。
不过,利用Linux自带防火墙(iptables,firewalld)、入侵检测和安全认证等工具,及时修补系统的漏洞,就能大大提高Linux系统的安全性,让黑客们无机可乘,同时还有安全增强机制SElinux,在linux内核中提供强制访问控制,功能非常全面,能够很好保护系统和服务,不过很多人喜欢把它关闭,这相对安全性就不是很好了。
还有Tcp_wrappers也能够提供很好的网络服务访问控制,Linux系统对于用户和文件管理权限的管理也是相当出色的,能够很好的控制权限,保证文件的机密性,也是其他系统无法比拟,所以Linux系统在一定程度上是坚不可摧的。
5.性能优势
由于Linux要保证其稳定性,所以并没有像其它操作系统一样内核如此臃肿庞大、漏洞百出,随着Linux内核的不断更新,不断提升着优势,Linux操作系统能把服务器的硬件优势体现的淋漓尽致,因为Linux系统吸取了Unix系统近1/4世纪发展的经验,最主要的是Linux开放源代码,保证系统稳定性,更好的调用硬件功能,同时还提供了丰富的系统资源工具top,freee,df,vmstat,dmesg,iostat,sar,uptime等,方便查看资源的利用率。
以上这些足够让你投向Linux的怀抱了。更多Linux操作知识,可以网络《Linux就该这么学》。
③ 程序员怎样用Linux编程
在Linux上编程一般都是文本编辑器(Vim、emacs等工具)+编译器(GCC、g++、make、cmake等工具)+调试器(gdb),在Linux上用集成开发环境IDE(Linux上一般用codeblocks、eclipse-cdt等)的程序员要比Windows少。我才开始用的是eclipse-cdt,就是觉得IDE不好用,竟然写一个helloworld都要产生一大堆项目文件,这样的话如果是用git来维护管理代码就有些不方便了,而且如果编写的是命令行程序调试时会反复切换到终端,还不如直接在终端编译、调试,总之太不灵活。不过也有用gdb用得不习惯的,毕竟有些是从Windows上过来的,那就可以选择gdb的图形前端ddd和Kdbg这两个软件,这两个软件只是gdb的图形外壳,它们还是调用gdb来实现程序调试,但操作上方便多了。也有觉得用命令行编辑器不习惯的,他们会选择图形界面的gVim+各种Vim插件,还有图形界面更友好的代码编辑器如gedit、Sublime Text、Atom、VScode等等。
④ linux常用命令
linux常用命令如下:
1、查看内核版本:uname -a。
2、控制台-》图形界面:init 5或者startx。
3、图形界面-》控制台: init3或者直接注销。
4、如何查看ip地址:ifconfig。
5、配置ip:ifconfig eth0 ip地址。
6、重启:reboot 或者 shutdown -r now。
7、普通用户切换到系统用户:su。
8、注销用户指令:logout。
9、从子机退出:ctrl+alt。
10、全屏:ctrl+alt+enter 。
基本思想:
Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。
完全免费:
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,吸收了无数程序员的精华。
以上内容参考:网络--Linux
⑤ 在Linux下做开发 要学习Linux哪些东西
嵌入式Linux要学哪些?一些人总在寻思,怕走了弯路,又怕学的东西离企业需求远。那么今天就请华清远见高级讲师曹大神告诉你,9点浅析嵌入式学习步骤。下面是他本人亲笔。
1、要学习Linux,首先要会用,如果不会用怎么知道怎么知道怎么去做,所以需要学习Linux系统的安装及使用。
2、学会用Linux了,那么我们就要做一些Linux下的开发了,开发什么呢?看到网上有很多很强大很有趣的程序,我们都可以尝试去做,可是如何去做呢,程序是什么呢,怎么写呢?这时我们需要学习一些语言,比如比较基础的C语言,比如面向对象的C++,java等。
3、写完程序了发现不就是一个很普通的文件吗,怎么能像别人写的程序一样运行起来呢? 这时我们需要知道如何编译一个程序,需要知道编译器及一些其他工具的使用,比如GCC,在开发的过程中我们为了提供工作效率还会用到Make,Shell等,为了能够很好的管理我们代码的不同版本,我们还需要知道什么是SVC,CVS,subversion,Git等。
4、当我们开始写一些比较大的程序,不再是以往的hello world级别的了,这时我们发现我们考虑的更多了,我们考虑到了程序的效率,我们发现需要读写文件了,我们发现需要和另外一台电脑通信了,于是我们有需要学习一些更高级点的东西了,比如数据结构,比如文件IO,比如多进程多线程编程,比如网络通信,这时我们会接触很多新的名词,什么是树,图...,什么是文件io什么是标准IO,什么是进程线程,什么是TCP/IP...。
5、当我们再进一步的话,我们会发现我们什么有很多的东西都运行的是Linux系统,可是他们和我的PC运行的Linux有什么区别呢,为什么我电脑要用风扇而手机不用风扇呢,我们打开网页查找手机的详细参数的时候,会看到Cortex-A15 、四核 、ARM等等字眼,什么是ARM,什么是Cortex-A15,我们需要进一步的了解。
6、了解完ARM之后,很多人就回去购买一些开发板,去学习它,这时操作系统的移植又成了一个比较重要的内容了,什么是bootloader,什么是kernel,什么是rootfs等等,我们怎么做呢。
7、花了很长时间系统做好了,发现板子上很多的什么不能用,怎么办呢? 这时我们需要写一些驱动来驱动这些设备,这时我们需要知道,什么是字符设备驱动、块设备驱动、网络设备驱动,为了更好的写驱动我们需要了解更多的硬件相关的东西,我们需要看懂芯片手册,我们需要看懂原理图,只有我们懂我们的设备,才能更好的驱动它。
8、等等,这里就列举更多的内容了,因为还有很多。
9、这些都有了我们就可以自行开发我们自己的产品了。
嵌入式Linux要学哪些?上述9点基本很明了了。这也算是嵌入式学习的一个基本步骤。本人认为到第九点你已经是一个高级的嵌入式Linux人物了,工资待遇我已经不用说,咋说也得15K往上了,如果做管理30K也是有的。这些东西要靠自学,说实话不太现实,嵌入式入门门槛相对高,要有心里准备,参加培训班是有必要的,除非你有亲戚朋友手把手教你。引用一句老话:“师傅领进门,修行是靠个人!”自己必须得喜欢钻研与学习,只有付出才会有收获!
最后说一点,android系统也是在linux系统基础上开发的,所以学嵌入式linux的朋友,将来不仅可以从事嵌入式开发的工作(嵌入式的应用领域非常广泛,永不过时!)还可以从事android开发方向的工作(轻松迈入),从职业发展来说,嵌入式linux也是程序员最具发展前景的技术首选。
顶
23
踩
⑥ 学习linux要看的书籍
《鸟哥的Linux私房菜 基础学习篇(第三版)》,鸟哥着
一本大而全的LINUX入门指点,主要讲解Linux一些命令,Linux的实际操作及Linux基础理论。很适合Linux初学者学习。
《嵌入式 Linux 应用开发完全手册》,韦东山着
这本书综合了常见的嵌入式开发经验技巧,以及常见的嵌入式系统应用,系统移植,调试及异常处理等,内容非常丰富,是中文 Linux 领域难得的一本好书。嵌入式处理器种类繁多,韦老师着重讲了目前国内最常用的ARM系统,实用性很强,是国内嵌入式程序员不容错过的一本工具书。
《UNIX环境高级编程》(第2版),史蒂文斯着
《UNIX环境高级编程》是 Unix/ Linux 程序员案头必备的一本书籍。可以说,Linux 程序员如果没有读过这本书,就好像基督教徒没有读过圣经一样,是很难让人理解的。这本书概括了 Linux 编程所需的一切理论框架、主要系统函数、多进程编程、乃至 Linux 网络通信。
《Linux设备驱动开发详解:基于最新的Linux 4.0内核》,宋宝华着
随着通信、电子行业的迅速发展,全世界每天都会生产大量芯片,设计大量新电路板,也因此,会有大量设备驱动需要开发。本书主要对驱动编程所涉及Linux内核最底层机理的讲解。也是即Linux设备驱动开发详解第二版畅销后,作者又进行第三版的编着。
《Linux 设备驱动程序》,科波特着
《LINUX设备驱动程序》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码分析比较多,基于2440的,对linux外围驱动有很全面的讲解。
《深入理解 Linux 内核》(第三版) ,博韦等着
学习 Linux ,就要学习 Linux 的精华。而 Linux 的精华,则在于 Linux 的内核。本书以 Linux 2.6 版架构为基础,分门别类地向初学者介绍了 Linux 内核的架构、编程思想、以及功能模块。在本书的指导下学习,对于你读懂 Linux 操作系统的精华部分,会取得事半功倍的效果。
⑦ 成为linux程序员需要学习什么
1 第一部分:LINUX平台搭建与环境熟悉
了解Linux系统;区分各种版本的Linux系统,以便于拓展Linux视野。
1、Linux 简介;
2、Linux 系统的主要特点;
3、Linux 的组成;
4、主要的Linux 版本;
5、嵌入式Linux简介与发展
第二部分虚拟机安装和LINUX系统安装
虚拟机安装;
2 Linux系统的安装;
3 Linux系统的常用软件的安装;
4 Linux快速入门
5 熟悉运用Linux环境下,常用命令的操作与系统设置,如常用的Shell;掌握基本的Shell 应用
6 第三部分:嵌入式LINUX环境搭建
建立嵌入式Linux开发环境
7 熟悉嵌入式开发平台
8 嵌入式Linux开发工具
9 Linux下的调试技巧
10 MAKE工程管理器
11 硬件环境的搭建;arm-linux-gcc与gcc安装配置
第四部分:U-Boot:了解 U-Boot的作用及工作流程;了解Bootloader的代码结构、编译过程;移植U-Boot;掌握常用的U-Boot命令。
Bootloader介绍
u-boot工程介绍
u-boot的编译使用
u-boot源码分析
u-boot资源分配
配置编译u-boot
u-boot移植过程
u-boot常用命令操作
添加u-boot新命令
设置u-boot环境变量
u-boot驱动添加如网卡:DM9000
第五部分:LINUX内核移植:熟悉内核的原码结构和kbuild Makefile语法;掌握和内核、驱动模块编译相关的原理及方法。
1、Linux内核介绍
2、Linux内核特点
3、Linux内核源代码结构
4、Linux内核选项解析
5、Linux内核编译链接
6、内核模块编译、使用方法
第六部分:LINUX根文件系统
busybox 包移植、编译
Linux跟文件系统制作过程
根文件系统介绍
4. nfs文件服务器系统搭建
第七部分:LINUX驱动开发
驱动开发是嵌入式Linux开发难度最高的内容,也是目前嵌入式行业最紧缺的人才之一。本课程介绍嵌入式Linux驱动开发相关概念及开发流程,了解驱动开发的关键技术点,重点讲解嵌入式Linux下常用接口驱动的编写方法,包括
字符型LED驱动开发(GPIO口驱动)
按键驱动开发(中断驱动,在驱动中中断程序的编写,消息队列的应用
ADC驱动开发
网卡驱动开发
串口驱动开发
液晶屏(TFT彩屏驱动开发
触摸屏驱动+tslib(中间插件移植与设置),
USB驱动开发+USB无线网卡移植
IIS驱动开发+maplay移植与应用(mp3播放)+mplayer移植与应用(视频播放Mp4/广告机等播放)
SD驱动开发
RTC驱动开发
电源管理方法
第八部分:LINUX应用学习
课程目标:嵌入式Linux应用开发和系统开发是嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分。主要目标是精通嵌入式Linux下的程序设计,熟练掌握嵌入式Linux的开发环境、系统编程以及网络编程,熟悉C++、QT编程并且深刻体会整个嵌入式Linux项目开发流程,强化学员对Linux应用开发的能力.
Linux系统中的进程的概念,在应用程序中线程与父子进程的创建与应用
线程之间、进程之间的通信
进程间通信基本概念
管道(PIPE)
信号(SIGNAL)
内存映射(MAPPED MEMORY)
消息队列(MESSAGE QUEUE)
信号量(SEMAPHORE)
共享内存(SHARE MEMORY)
tcPip协议在应用程序中的编程开发(SOCKET套接字编程开发)
10.1. ISO/OSI七层协议模型与IP网络四层模式
10.2.TCP/IP协议簇
10.3. 基于嵌入式Linux的TCP/IP网络结构
10.4. 基于嵌入式Linux的SOCKET编程
10..5.UDP与TCP的区别
10.6. UDP SERVER-CLIENT关系程
文件读写与存储
第九部分:QT移植与开发
通过本课程的学习,学员能够了解嵌入式Linux下的几种常见GUI及其特点,重点能掌握QT的有关内容,具备QT程序设计能力。了解嵌入式数据库的配置与开发
1 、嵌入式Linux GUI介绍
2、嵌入式QT开发包移植
3、QT介绍及其信号插槽机制
4、QT图形界面编程技术
5、QT应用程序与Linux驱动的衔接
6、QT在实际项目中具体应用
第十部分:无线通讯应用
1、无线wifi模块应用
2、3G模块应用
第十一部分:嵌入式系统应用程序,驱动程序调试
1、Linux基本工具调试使用。GDB,insight调试等
2、Linux应用程序的编程
3、嵌入式产品程序打包与发布
第十二部分:嵌入式项目综合调试,产品发布
本课程将通过一个真实完整的项目案例,让学员了解真实项目的开发流程,掌握如何将所学知识应用到项目开发中。将模拟真实项目的管理过程,培养学员项目团队协同开发能力,项目文档编写能力和新知识的学习能力,为下一步就业做好知识上和心理上的充分准备。
⑧ java程序员学习linux什么书好一些
java程序员,我想说,除了做手机应用开发的java程序员外,其实在大多数java软件开发的过程中是用不到Linux知识的(不敢说绝对)。
在大多情况下,java的程序都是在window平台之上开发出来的。这是为什么呢?
因为,在开发程序的过程中,要用到很多帮助软件和开发环境来帮助我们提高开发效率,而这些软件很多都是只能在windows平台上才能得到良好的支持,甚至是只能在windows上运行,而linux和Unix之上运行的软件少的可怜。所以程序员为了效率就很可能抛弃linux平台而选择windows平台。至少我知道的很多公司里还没有用linux作为开发平台的!
但是如果你认为linux是鸡肋,那你就错了。
java的软件开发完毕后,大都是部署在linux服务器或是Uinx服务器上,这就要求你要有一定的相关知识。因为java的跨平台特性的缘故,所以开发的环境和部署的环境不同部会影响到java程序的执行。又因为linux和uinx非常稳定,并且针对这两个系统的病毒也不是很多,所以java程序部署在这样的系统上可以得到很好的运行环境。这也是各大公司所看好的。
如果你是做java手机应用的。那你还是要好好的学习一下linux,而且是深入,因为做系统软件要对底层的东西要非常了解。 这也不是只学习一下linux就可以的。相关的东西太多了。我也不是特别清楚。
linux什么书籍好,我不是特别清楚,个人认为:只要是一本书,看了就比不看的人懂的要多。随便一本天天看,发散性的看书,就会得到意想不到的效果!
⑨ linux程序员应该具备哪些知识
应用程序员:c/c++, gcc/g++, gdb, make, shell编程,vi/emacs, 系统调用, 命令。