十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
正好我上午正在看的这篇:
尉氏ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
========================
解答:学习Linux的四个步骤
假设你是计算机科班出身,计算机系的基本课程如数据结构、操作系统、体系结构、编译原理、计算机网络你全修过
我想大概可以分为4个阶段,水平从低到高
从安装使用=linux常用命令=linux系统编程=内核开发阅读内核源码
其中学习linux常用命令时就要学会自己编译内核,优化系统,调整参数
安装和常用命令书太多了,找本稍微详细点的就ok,其间需要学会正则表达式
系统编程推荐《高级unix环境编程》,黑话叫APUE
还有《unix网络编程》
这时候大概还需要看资料理解elf文件格式,连接器和加载器,cmu的一本教材中文名为《深入理解计算机系统》比较好
内核开发阅读内核源码阶段,从写驱动入手逐渐深入linux内核开发
参考书如下《linux device drivers》,黑话叫ldd
《linux kernel development》,黑话叫lkd
《understading the linux kernel》,黑话叫utlk
《linux源码情景分析》
这四本书为搞内核的必读书籍
最后,第三阶段和第四阶段最重动手,空言无益,光看书也不罩,不动手那些东西理解不了
学习linux/unix编程方法的建议
建议学习路径:
首先先学学编辑器,vim, emacs什么的都行。
然后学make file文件,只要知道一点就行,这样就可以准备编程序了。
然后看看《C程序设计语言》KR,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。
如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。
然后再看Douglus E. Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程。
如果想写设备驱动程序,首先您的系统编程的接口比如文件、IPC等必须要熟知了,再学习《LDD》2。
对于几本经典教材的评价:
《The C Programing Language》KR 经典的C语言程序设计教材,作者是C语言的发明者,教材内容深入浅出。虽然有点老,但是必备的一本手册,现在有时候我还常翻翻。篇幅比较小,但是每看一遍,就有一遍的收获。另外也可用谭浩强的《C语言程序设计》代替。
《Advanced Programing in Unix Envirement》 W.Richard Stevens:也是非常经典的书(废话,Stevens的书哪有不经典的!),虽然初学者就可以看,但是事实上它是《Unix Network Programing》的一本辅助资料。国内的翻译的《UNIX环境高级编程》的水平不怎么样,现在有影印版,直接读英文比读中文来得容易。
《Unix Network Programing》W.Richard Stevens:第一卷讲BSD Socket网络编程接口和另外一种网络编程接口的,不过现在一般都用BSD Socket,所以这本书只要看大约一半多就可以了。第二卷没有设计到网络的东西,主要讲进程间通讯和Posix线程。所以看了《APUE》以后,就可以看它了,基本上系统的东西就由《APUE》和《UNP》vol2概括了。看过《UNP》以后,您就会知道系统编程的绝大部分编程技巧,即使卷一是讲网络编程的。国内是清华翻译得《Unix网络编程》,翻译者得功底也比较高,翻译地比较好。所以建议还是看中文版。
《TCP/IP祥解》一共三卷,卷一讲协议,卷二讲实现,卷三讲编程应用。我没有怎么看过。,但是据说也很经典的,因为我没有时间看卷二,所以不便评价。
《用TCP/IP进行网际互连》Douglus.E.Comer 一共三卷,卷一讲原理,卷二讲实现,卷三讲高级协议。感觉上这一套要比Stevens的那一套要好,就连Stevens也不得不承认它的第一卷非常经典。事实上,第一卷即使你没有一点网络的知识,看完以后也会对网络的来龙去脉了如指掌。第一卷中还有很多习题也设计得经典和实用,因为作者本身就是一位教师,并且卷一是国外研究生的教材。习题并没有答案,留给读者思考,因为问题得答案可以让你成为一个中级的Hacker,这些问题的答案可以象Douglus索取,不过只有他只给教师卷二我没有怎么看,卷三可以作为参考手册,其中地例子也很经典。如果您看过Qterm的源代码,就会知道Qterm的telnet 实现部分大多数就是从这本书的源代码过来的。对于网络原理的书,我推荐它,而不是Stevens的《TCP/IP祥解》。
《Operating System - Design and Implement》这个是讲操作系统的书,用Minix做的例子。作者母语不是英文,所以英文看起来比较晦涩。国内翻译的是《操作系统设计与实现》,我没看过中文版,因为翻译者是尤晋元,他翻译的《APUE》已经让我失望头顶了。读了这本书,对操作系统的底层怎么工作的就会
有一个清晰的认识。
《Linux Device Driver》2e ,为数不多的关于Linux设备驱动程序的好书。不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北。国内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。
首先告诉你不要怕,根据提示一定可以装上,然后请看下面的话:
Windows系统下Linux的安装
HQY 发表于 2004-12-10 18:25:00
您想在同一台计算机上同时使用Windows和Linux系统吗,您必须首先学会在一台安装了Windows系统的计算机上安装Linux系统。
对于Windows/Linux多操作系统共存的系统,安装顺序是先安装Windows系统,然后才是Linux。下面我们介绍在已经安装了Windows系统的单硬盘上如何安装RedHat Linux 9.0。
Linux安装前的准备工作
1.用Windows系统收集硬件信息
在安装Linux之前,您需要借助Windows系统了解计算机硬件的基本信息,如内存大小、声卡、显示器、鼠标和显卡型号等。
2.设置从光盘引导系统
Linux支持几种安装方式,但直接以光盘开机启动进行安装最方便和快速。若要机器以光盘启动,需要修改BIOS的设置,将CD-ROM变更至开机顺序的第一位。
3.Linux分区
Linux分区的表示方法
分区就是将磁盘驱动器分隔成独立的区域,每个区域都如同一个单独的磁盘驱动器,在DOS/Windows系统下磁盘分区可分为C、 D和E盘等。但Linux则将磁盘视为块设备文件来管理使用,它以 /dev(device的缩写)开头表示。
例: 在Linux用 “/dev/hda1”表示Windows下的C盘
其中:hd 表示IDE硬盘(SCSI硬盘用sd);hda 为 第一个IDE 硬盘(第二为 hdb);/dev/hda1 为主分区,逻辑分区 从5 开始,如: /dev/hda5、/dev/hda6、/dev/hda7等。
为Linux准备分区
Linux分区和Windows分区不同,不能共用。所以需要为Linux单独开辟一个空闲的分区,最好是最后一个分区。如图1中利用Windows下的Partition Magic(分区魔法)软件,在D盘上腾出空间创建新分区E盘(或利用已有的空闲E盘),文件类型暂设为FAT32,作为稍后创建Linux分区使用,RedHat 9.0 大约需4 ~ 5GB的空间。
4.Linux 的文件系统
对于不同的操作系统,文件系统也不同。Windows文件系统为FAT16、FAT32和NTFS。而Linux的文件系统可分为ext2、ext3、swap和vfat。ext2支持最多为255 个字符的文件名;ext3 是基于 ext2之上,主要优点是减少系统崩溃后恢复文件系统所花费的时间,RedHat 9.0 默认文件系统为ext3;交换区swap是被用于支持虚拟内存;Windows的FAT分区在Linux下显示为vfat文件类型。
1.用RedHat 9.0第一张安装光盘引导开机,系统在开机后会出现安装菜单。
安装菜单中提供了供用户选择的图形和文本模式的安装方式,按回车选择图形模式进行安装。在进入图形画面的安装模式前,RedHat 9.0比以往的版本多了一个环节,那就是提示对安装光盘介质进行检测, 也可按“Skip”按钮跳过检测。
2.接着安装程序会自动检测硬件,包括视频卡(显示卡)、显示器和鼠标的配置,然后进入图形画面的安装向导。在出现“语言选择”的画面中,我们选择“简体中文”,这样接下去的安装过程界面的文字都会改为中文。在“键盘配置”画面中接受默认的“美国英语式”键盘。选择“下一步”,在“鼠标配置”窗口,系统自动检测出鼠标的配置。
3.选择安装类型,安装类型包含四种不同的安装方式:个人桌面、工作站、服务器和定制。“服务器”的安装适用于专职的服务器使用,“个人桌面”和“工作站”适合于初学者,为了让你更多地了解安装过程,我们将选择“定制”类型进行安装。
4.磁盘分区设置:确认了“定制”方式之后,系统会出现“磁盘分区设置”窗口,它提供了两种分区方式:“自动分区”和“用Disk Druid手工分区”。
“自动分区”是一个危险功能,因为它会自动删除原先硬盘上的数据,并格式化成为Linux的分区文件系统。所以除非计算机上没有其他操作系统,你才可以使用。建议采用Disk Druid程序进行手动分区,它的图形化界面比早期RedHat的fdisk程序操作更简单。
5.磁盘设置:在选择“用Disk Druid手工分区”后,会显示如图2的“磁盘设置”窗口,这是整个安装过程中惟一需要用户较多干预的步骤,也是很重要的环节。
只要有一个主分区就可以安装并使用Windows操作系统,同时D、E等逻辑盘的文件结构也都是独立的。而Linux系统归根结底就只有一个根目录,一个独立且惟一的文件结构。Linux的文件系统采用树型结构,整个文件系统由一个“根”和根上的几个分“杈”组成,Linux需创建几个“Linux Native”分区和“Linux Swap ”分区,每个分区都必须通过 “挂载点”,分别载入到 “根(/)”或几个分“杈(如/boot、/home等)”上。
一个最基本的Linux系统需有一个“/”根文件系统分区、一个“Swap”交换文件分区和/boot分区,为了用户使用方便建议还需创建一个 /home分区。
为Linux建立分区有几种办法,一种是编辑现有空闲分区,使它成为Linux分区。如果没有空闲的磁盘空间,就需要将现有的分区删除后,腾出空间,以建立Linux分区。
图2中的/dev/hda6是在Windows下用Partition Magic为Linux准备的分区E盘(图1)。下面我们将在/dev/hda6上创建“/”、“/boot”、“swap”和“/home”分区。
(1)因 /dev/hda6 的文件类型是vfat,需先删除此分区,使它变成 “空闲”设备和“空闲分区”;
(2)创建“/”分区:选中“空闲”设备,按“新建”按钮,进入“添加分区”的窗口中,挂载点选“/”,文件系统类型选“ext3”,大小输入“5000MB”。
(3)创建“/boot”:同(2),在挂载点选“/boot”,文件系统类型选“ext3”,大小输入“100MB”。
(4)创建swap:一般swap分区的大小设定为机器内存的2~3倍为最佳,在“添加分区”的窗口,文件系统类型选“swap”,大小为600MB(如果内存为256MB),它不需要挂载点;
(5)创建“/home”:在挂载点选“/home”,文件系统类型选“ext3”,我们选择“使用全部可用空间”选项,将剩余的磁盘分配给/home区。
6.在完成了创建Linux分区后,接下来出现“引导装载程序配置”窗口。
对于Windows/Linux多操作系统共存的系统,开机时如何指定引导的操作系统,这需要借助开机引导装载程序(Boot Loader)。Linux内置了两种开机引导装载程序——LILO与Grub,在图3引导装载程序配置中,我们将开机启动的操作系统设为DOS(Windows),同时默认系统设置——以Grub作为引导装载程序。
7.配置好引导装载程序后,在接下来的“网络配置”、“防火墙的配置”、“附加语言支持”和“时区选择”的窗口中,我们都按系统默认进行选择。
8.和Windows XP相同,有一个称为“root”权限最大的管理员账户,使用这个账户登录主机可以完全掌握整个系统,安装过程中需要设置它的口令,请记住设置的口令。在后面的“验证配置”的窗口中,我们以系统默认的设置进行。
9.接下来是进行“个人桌面默认的设置”,选择“定制要安装的软件包集合”。然后是系统软件包的选择安装,在“选择软件包组”窗口中,为了测试每个软件包的功能,选择最后一个选项“全部安装”,安装全部软件包需4850MB的硬盘空间,按“下一步”后,系统开始进行软件包的安装。在安装过程中,系统会提示插入第二及第三张安装光盘。
10.软件包安装完成后,系统会提示“创建引导盘”,当系统无法引导的情况下,引导盘可作为紧急救援盘,我们强烈建议要制作引导盘。
11.随后系统显示“图形化界面(X)配置”、“显示器设置”和“定制图形化配置”的窗口,分别显示系统检测出的视频卡(显示卡)的型号、内存和显示器的型号以及色彩深度、屏幕分辨率等,一般按系统的默认值设置即可。
完成了上述这些操作后,系统会显示安装完成的提示窗口。当你重新启动机器后,Windows的开机画面将被多操作系统引导程序Grub的精美图案所替代。
一.为什么要学linux?
当然最重要是爱好和兴趣!如果你这种必要学,或者根本不喜欢,请不要浪费时间,你学也学不好!
二.起步
你应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix
如何选择版本:北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的linux开发人员中用debian的最多,其次是redhat,从全球linux各应用领域市场份额来看无疑redhat是最多的,此外还有很多出名的发行版本,不再列举。
对于初学linux的人来说,我建议是使用redhat,原因如下:
1)现在很多书都是以redhat为例讲的,为了与书本协调一致
2)周围的人都用redhat,交流比较方便
3)redhat应用范围广,有典型性和代表性
4)它易于使用和安装,我们没有必要把时间浪费在“装系统”上而应集中精力学习最有用的东西。
【注】现在觉得RH很死板,AS,ES等用在服务器上或许不错,Personal desktop用mandrake,debian,suse都不错,笔者现在用Mandrake,因为她长得漂亮:)
如果你并不打算深入学习linux,而是有诸如适应北京市政府办公平台迁移到linux上这种需要,那么中软,红旗等中文linux是不错的选择
我强烈建议:自己亲自动手把linux装到你的硬盘上,你必须学会独立安装linux系统的技能,对于现在的版本来说,其实跟装WinXP一样简单
从此现在开始,请不要以windows的工作方式来考虑问题,应该尝试挖掘linux身上的“天才unix”的气质。
三.进阶
掌握至少50个以上的常用命令
理解shell管道"|",文件流重定向""及追加""等
熟悉Gnome/KDE等X-windows桌面环境操作
掌握.tgz.rpm.biz等软件包的常用安装方法
学习添加外设,安装设备驱动程序(比如modem)
熟悉Grub/Lilo引导器及简单的修复操作
熟悉系统固有目录的名称及公用
学会用mount命令访问其他文件系统
了解vi,gcc,gdb等常用编辑器,编译器,调试器
学习linux环境下的简单组网
建议:买一本不需要太厚的linux教材,大致可以满足要求(现在的书越来越多了,还带很多图,我当时可没这么多书)
四.高级应用
澄清一些概念:linux的普通操作与真正的系统管理不能相提并论,后者需要很多知识
1.英语
即使你不学linux,我也强烈建议你学好英文[U.S.english]。因为实质上计算机语言就是英文和字符,所谓的多国语言只是外部包装。你必须能无障碍的阅读大量的英文技术文档在搜索引擎找到的英文网站和网页中熟练的检索最好能有用英文直接交流的能力,摆脱了这个障碍,你的学习和理解速度就能快很多,你就有机会拉开和别人的差距。
2.shell[sed/awk]
shell是命令解释器,是内核与用户界面交流通道,shell写的小脚本有点类似于win下的.bat但shell比.bat强大的多,shell不只是解释命令,更是一种编程语言,有时候几百行的c用shell几十行就能代替完成工作,因为shell的工作方式建立在系统已有的众多应用程序之上
这也是CS中的一个重要思想。此外,shell可以实现工作自动化,这个概念也比较重要sed,awk用来处理文本,历来很常用。
3.Perl/PHP
漂亮的脚本, CGI的首选,比ASP好,应用面很广
4.C\C++
C、C++是linux/unix的核心语言,系统代码都是C写的
5.ASM
系统底层及内核,硬件,设备驱动程序,嵌入式开发都需要。//走核心路线的话,c\c++,asm最重要
6.Java,Python,Tcl,XML
五、系统管理篇
在熟悉linux的基础上还需要掌握至少一种unix。我首推Solaris,其次是FreeBSD比如运营级系统一般是Solaris+Oracle/DB2之类的学习apache、ssh、sendmail/Qmail、proftp/vsftp、Samba、Squid、MySQL/PostgreSQL/Oracle、Bind等各种应用服务器的构架及电子商务的应用熟悉TCP/IP协议族,学习诸如apache+php+proftp+mysql+quota的实现以及大型局域网,分布式集群等各种企业级应用解决方案熟悉多用户管理,数据库管理,文件系统,逻辑存储管理,日志分析,备份与灾难数据修复系统补丁,内核升级,以及在此基础上的防火墙构架等以保障系统安全在内的各种系统管理技能。
我觉得,如果在此基础上再掌握路由/交换设备便是一个不错的系统管理员
各种基于linux的解决方案可参考相关书籍和文献,必要时用google或各大linux站点站内搜索引擎寻找最新文档,以避免错误和漏洞有几本技术大全和技术内幕我认为都是这方面不错的书
六、深入学习linux
我个人理解的读linux内核需要的基础:在此之前,希望先把应用层的东西学一下,那样会比较好理解
1.C
如果学过潭浩强的大学教科书(除了编几个数学模型好像什么也做不了的那种),建议再看一下《The C Programming Language》Second Edition这本圣经(如果想学缓冲区溢出,这点C的功力可能是不够的,还有C陷阱与缺陷,C专家编程,C\C++深层探索,反正经典书看多了是没有坏处的)
2.asm (ATT语法,保护模式)
保护模式下的比较复杂,基本上每本讲内核的书都会有介绍有80x86 Intel语法的基础就行,
有兴趣可以看看Intel的官方网站
3.数据结构(离散数学)
计算机专业的核心课程,重要性我就不说了
4.操作系统原理
看懂这个再去读linux吧
5.微机原理/组成原理(数字电路)
底层直接和硬件打交道,所以这个也要
6.了解linux/unix
我想至少你要会操作吧,了解unix的API
7.软件工程/编译原理
这方面的经典书去可以搜到很多我觉得APUE这种书不适合初学者,还是先看看UPE
关于优化
说起优化,其实最好的优化就是提升硬件的配置,例如提高cpu的运算能力,提高内存的容量,个人认为如果你考虑升级硬件的话,建议优先提高内存的容量,因为一般服务器应用,对内存的消耗使用要求是最高的。当然这都是题外话了。
这里我们首要讨论的,是在同等硬件配置下(同一台服务器,不提升硬件的情况下)对你的系统进行优化。
作为系统管理员,我认为,首先我们要明确一个观点:在服务器上作任何操作,升级和修改任何配置文件或软件,都必须首要考虑安全性,不是越新的东西就越好,这也是为什么linux管理感觉上和windows有所不同的地方,windows首先推荐大家去使用它的最新版本软件和操作系统,其实我个人认为这是一种商业行为,作为从系统管理上来讲,这是很不好的,使用新的软件和系统可能带来新的问题,有些甚至是致命的。
因此,作为管理,我们还是应该考虑稳定的长期使用的软件版本来作为我们的版本,具体的好处我就不多说了。相信作为管理员的你应该知道的。
其实个人使用的linux最直接的一个优化就是升级内核,自己编译的内核是根据自己的系统编译而来,将得到最大的性能和最小的内核。
但是,服务器就不太一样了,当然我们也希望每一台服务器都是自己手工编译的内核,高效而精巧。但是实际和愿望是有差距的,试想一下,如果你管理100来台linux主机,而每一台也许配置都不一样,那编译内核的一个过程将是一个浩大工程,而且从实际考虑,工作量大得难以想象。我想你也不会愿意做这种事情吧。因此,个人建议,采用官方发布的内核升级包是很好的选择。
首先,我们对新安装的系统,将做一系列升级,包括软件和内核,这是很重要的步骤,(这方面的详细情况欢迎察看我另一篇关于升级方面的文章)。
在升级好所有软件后,基本的防火墙和配置都做好以后,我们开始优化一些细节配置,如果你是老系统,那么在作本问题及的一些操作和优化你系统之前,务必被备份所有数据到其他介质。
1、虚拟内存优化
首先查看虚拟内存的使用情况,使用命令
# free
查看当前系统的内存使用情况。
一般来说,linux的物理内存几乎是完全used。这个和windows非常大的区别,它的内存管理机制将系统内存充分利用,并非windows无论多大的内存都要去使用一些虚拟内存一样。这点需要注意。
Linux下面虚拟内存的默认配置通过命令
# cat /proc/sys/vm/freepages
可以查看,显示的三个数字是当前系统的:最小内存空白页、最低内存空白页和最高内存空白。
注意,这里系统使用虚拟内存的原则是:如果空白页数目低于最高空白页设置,则使用磁盘交换空间。当达到最低空白页设置时,使用内存交换(注:这个是我查看一些资料得来的,具体应用时还需要自己观察一下,不过这个不影响我们配置新的虚拟内存参数)。
内存一般以每页4k字节分配。最小内存空白页设置是系统中内存数量的2倍;最低内存空白页设置是内存数量的4倍;最高内存空白页设置是系统内存的6倍。这些值在系统启动时决定。
一般来讲在配置系统分配的虚拟内存配置上,我个人认为增大最高内存空白页是一种比较好的配置方式,以1G的内存配置为例:
可将原来的配置比例修改为:
2048 4096 6444
通过命令
# echo "2048 4096 6444" /proc/sys/vm/freepages
因为增加了最高空白页配置,那么可以使内存更有效的利用。
2、硬盘优化
如果你是scsi硬盘或者是ide阵列,可以跳过这一节,这节介绍的参数调整只针对使用ide硬盘的服务器。
我们通过hdparm程序来设置IDE硬盘,
使用DMA和32位传输可以大幅提升系统性能。使用命令如下:
# /sbin/hdparm -c 1 /dev/hda
此命令将第一个IDE硬盘的PCI总线指定为32位,使用 -c 0参数来禁用32位传输。
在硬盘上使用DMA,使用命令:
# /sbin/hdparm -d 1 /dev/hda
关闭DMA可以使用 -d 0的参数。
更改完成后,可以使用hdparm来检查修改后的结果,使用命令:
# /sbin/hdparm -t /dev/had
为了确保设置的结果不变,使用命令:# /sbin/hdparm -k 1 /dev/hda
Hdparm命令的一些常用的其他参数功能
-g 显示硬盘的磁轨,磁头,磁区等参数。
-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
-I 直接读取硬盘所提供的硬件规格信息。
-p 设定硬盘的PIO模式。
-Tt 评估硬盘的读取效率和硬盘快取的读取效率。
-u 0或1 在硬盘存取时,允许其他中断要求同时执行。
-v 显示硬盘的相关设定。
3、其他优化
关闭不需要的服务,关于系统自动启动的服务,网上有很多资料,在此我就不赘述了;
关于安全
1、安全检查
作为一个系统管理员来说,定期对系统作一次全面的安全检查很重要的,最近遇到一些朋友来信说出现了一些莫名其妙的问题,例如最大的一个问题就是明显感觉网络服务缓慢,这极有可能是被攻击的现象。
实践证明,无论是那种系统,默认安装都是不安全的,实际不管你用windows也好,linux,bsd或其他什么系统,默认安装的都有很多漏洞,那怎么才能成为安全的系统呢,这正是我们系统管理人员需要做的事情。配置配置再配置。
任何系统,只要细心的配置,堵住已知的漏洞,可以说这个系统是安全的,其实并非很多朋友说的那样,安装了系统,配置了防火墙,安装了杀毒软件,那么就安全了,其实如果对系统不作任何安全设置,那就等于向黑客敞开一扇纸做的大门,数十分钟就能完全控制!
这并非骇人听闻。
作为linux系统,同样存在很多漏洞,黑可能利用这些漏洞控制你的整个系统,要防止这些问题,我们需要做以下步骤:
1、 升级系统中所有软件包的最新版本;
2、 设置较为强壮的防火墙;
3、 定期检查关键记录文件,配置杀毒软件
4、 多关心一下发布安全信息警告的网站,掌握一些最新的病毒和黑客程序的特点,这些都利于系统的正常运作。
这篇文章主要以优化为主,为了配合这一主题,安全部分我们只讨论一下日常的一些维护工作。
除了上面列出的4条是管理员必修之课外,对一些linux系统细节的维护也很重要。
包括:
1、 配置日志轮训工具,定期下载备份日志,是个非常好的习惯,这样不但能减少日志的消耗的磁盘空间,提高系统效率,更能及时发现问题,linux下有些很好的系统日志分析器,能直接提取日志中的特殊项目,省去了阅读日志的烦恼;
2、 使用命令lsof –i ,netstat –a ,ps –e等命令,定期检查系统服务端口监听等情况,也可制作一个定期执行的脚本,将这些命令定期执行后发到邮箱中;
3、 定期检查root用户的history列表,last列表,vipw用户列表是否正常;
4、 定期备份文件,用tar命令就能很好的备份了,当然需要下载这些备份并转移介质;
如一点发现有任何特别的没见过的情况或端口,那么要引起足够的重视,切勿因小失大。
以上是我对linux系统安全和优化的一些浅显认识,希望大家都能安全高效的使用linux为你的工作生活带来方便。
LINUX跟DOS差不多就是大概了解一下LINUX的结构之后记命令就行了???================================不可误人子弟,,,记得以前也在知道里回答过类似的问题,=======================================================================我个人在这里说一下在学习linux的这几年的一点心得,不敢说有什么成功的经验,但是有很多失败的教训。第一点:我学习linux是在大二的时候。那时候装的发行版本是redhat。可是刚刚开始的时候声卡的驱动装不上,其它比如说显卡,网卡都弄好。但是由于没有声音所以就没坚持用下去。几年后再次弄那个声卡的时候还是弄不上,可是这次的决心比较大,所以查了n多的资料;请教了很多人。终于被我弄好了。---------总结:无论是学习linux还是其它,决心是要摆在很重要的位置的。第二点:前两年的时候,对linux以及gnu的很多开源的东西产生了浓厚的兴趣;所以就开始深入的研究linux。甚至使用linux不久就开始阅读内核代码。可是到今天我还没真正意义上理解内核的结构,以及很多模块的功能,及实现原理。----------总结:不要在错误的时间做错误的事情。具体的讲有那么几层意思:a》不要动不动就去读kernel代码;b》不要太高估自己的能力;c》千万要在有一定知识积累的时候才能去研究更深层次的东西;d》要带的问题去学习,而不是空洞地进行技术研究;研究技术本身是学院派的作风。第三点:linux上面的开源的软件,和linux所包含的开放的精神,文化和内涵;它们是比linux内核更有价值的。--------总结:选择了linux其实也是选择了一种文化,选择了一种信仰;既然把这个选择上升到那么高的层次,那么任何的比较(与其它系统)都是不明智的;至少是不会有很大价值的。第四点:回到问题本身,如何去学习它?我个人认为应该遵循以下的顺序:接触(安装一个发行版本)=》认识(至少了解它能做什么)=》熟悉(用它来完成一些日常的工作)=》理解(在长时间的使用过程中了解为什么linux是这样解决问题的)=》创造(在前面几步的基础上做一些改进,创新)。当然在这样一个过程中有很多的“功课”要做,操作系统方面的知识当然是很重要的;但是不是很急迫,所以可以在后来有基础了再去了解;至于象保护模式也是一样。我个人做了这样一个学习的等级划分:1。重要,紧急:熟悉目录结构,熟悉基本操作命令(注意是基本),文本编辑器的使用(使用vi或者emacs但是不建议都学,因为本人当初就是想都精通,后来惹了不必要的麻烦;现在专心用vi)。2。重要,不紧急:正则表达式,grep,sed,awk,perl,gcc,gdb(其实这些东西的学习是需要很长的过程,但是它的使用又是贯穿整个系统;之所以重要是因为它们很好地体现了linux的精神;之所以不紧急并不是真的不紧急,是因为它们本身就是一个很伟大很复杂的软件需要慢慢消化吸收而不是囫囵吞枣)。3。不重要,紧急:一个绚丽的桌面,一些幽雅的桌面小插件(linux的强大事实上并不在其桌面环境,虽然gnome和kde都非常的幽雅;之所以不重要是相对于其它更重要的东西而言的,而之所以紧急是因为这些东西会在很短的时间内catch住你的心,你的兴趣;而兴趣是支撑你接下去学习过程的最最重要的东西---这一点请相信)。4。不重要,不紧急:将windows上常用的东西移到linux上,比如要在wine上玩wow或者cs(原因是显而易见的,开航母去钓鱼肯定没有划着小船来的有情调)最后我个人的建议是:了解操作系统的组成,工作原理要从了解它上面运行的应用软件开始。了解它上面的应用软件则要通过日复一日地使用它。我不觉得哪一本书能达到你期望的那种效果;但是如果在你坚持使用linux的过程中总是不断地去总结和接受新的东西,那么不要过很久你会发现linux是你的一个很好的助手。