浅谈如何学习linux

合集下载

linux系统基础知识

linux系统基础知识

linux系统基础知识Linux系统基础知识Linux是一种自由和开放源代码的类Unix操作系统,它是由Linus Torvalds在1991年首次发布的。

Linux系统具有高度的可定制性和灵活性,因此在服务器、超级计算机、移动设备等领域得到了广泛的应用。

本文将介绍Linux系统的基础知识,包括Linux的发行版、文件系统、用户和权限、命令行和图形界面等方面。

一、Linux的发行版Linux系统有许多不同的发行版,每个发行版都有自己的特点和用途。

常见的Linux发行版有Ubuntu、Debian、Fedora、CentOS、Red Hat等。

这些发行版都是基于Linux内核开发的,但它们的软件包管理、安装方式、默认桌面环境等方面有所不同。

选择适合自己的Linux发行版可以提高工作效率和使用体验。

二、文件系统Linux系统的文件系统采用树形结构,根目录为/。

在根目录下有许多子目录,如bin、etc、home、usr等。

其中,/bin目录存放系统命令,/etc目录存放系统配置文件,/home目录存放用户的主目录,/usr目录存放系统软件和库文件等。

Linux系统支持多种文件系统,如ext4、NTFS、FAT32等。

文件系统的选择取决于使用场景和需求。

三、用户和权限Linux系统是一个多用户系统,每个用户都有自己的用户名和密码。

用户可以通过命令行或图形界面登录系统,并执行各种操作。

Linux 系统采用权限控制机制,每个文件和目录都有自己的权限。

权限分为读、写、执行三种,分别对应数字4、2、1。

文件和目录的权限可以通过chmod命令进行修改。

Linux系统还有超级用户root,拥有系统的最高权限,可以执行任何操作。

四、命令行Linux系统的命令行界面是其最基本的界面,也是最强大的界面。

通过命令行可以执行各种操作,如创建文件、修改权限、安装软件等。

Linux系统的命令行界面有许多命令,如ls、cd、mkdir、rm、chmod等。

LINUX学习计划和目标

LINUX学习计划和目标

LINUX学习计划和目标LINUX操作系统已经成为IT行业中非常重要的一个技术领域。

它是一个强大的开源系统,被广泛应用于服务器、网络设备、嵌入式系统等领域。

学习和掌握LINUX操作系统对于从事互联网相关的行业非常重要,因此很多人都希望能够系统地学习LINUX操作系统。

在这篇文章中,我们将介绍一份LINUX学习计划和目标,希望能够帮助大家更好地了解LINUX操作系统,并制定一个系统的学习计划。

LINUX学习计划LINUX学习计划应该从基础知识开始学习,逐步深入,建立一个系统的知识结构。

一份合理的LINUX学习计划应该包括以下几个主要的学习阶段:1. 学习LINUX基础知识:包括LINUX操作系统的概念、安装、配置、文件系统、用户管理、权限管理等基本知识。

2. 学习LINUX系统管理:包括LINUX系统的运维管理、服务管理、网络管理、安全管理等知识。

3. 学习LINUX编程:包括shell编程、Python编程等知识。

4. 学习LINUX系统优化:包括系统性能优化、安全加固等知识。

5. 学习LINUX高级应用:包括LINUX集群、虚拟化、容器等高级应用知识。

根据以上几个学习阶段,可以制定一份详细的学习计划。

具体的学习计划可以按照具体的个人情况进行安排,一般来说,初学者可以按照以下的学习路径进行学习:1. 学习LINUX基础知识:首先,我们需要学习LINUX的基础知识。

可以选择一本LINUX的入门书籍,深入了解LINUX操作系统的基本概念、安装、配置等知识。

2. 学习LINUX系统管理:在掌握LINUX的基础知识之后,我们需要学习LINUX系统的管理知识。

可以选择一些系统管理的教程或视频,学习LINUX系统的运维管理、服务管理、网络管理、安全管理等知识。

3. 学习LINUX编程:了解LINUX系统管理的基础之后,我们可以学习一些LINUX编程知识,比如shell编程、Python编程等知识。

这些知识可以帮助我们更好地进行系统管理工作。

教你如何学习linux内核

教你如何学习linux内核

教你如何学习linux内核毫不夸张地说,Kconfig和Makefile是我们浏览内核代码时最为依仗的两个文件。

基本上,Linux 内核中每一个目录下边都会有一个Kconfig文件和一个Makefile文件。

对于一个希望能够在Linux内核的汪洋代码里看到一丝曙光的人来说,将它们放在怎么重要的地位都不过分。

我们去香港,通过海关的时候,总会有免费的地图和各种指南拿,有了它们在手里我们才不至于无头苍蝇般迷惘的行走在陌生的街道上。

即使在内地出去旅游的时候一般来说也总是会首先找份地图,当然了,这时就是要去买了,拿是拿不到的,不同的地方有不同的特色,只不过有的特色是服务,有的特色是索取。

Kconfig和Makefile就是Linux Kernel迷宫里的地图。

地图引导我们去认识一个城市,而Kconfig 和Makefile则可以让我们了解一个Kernel目录下面的结构。

我们每次浏览kernel寻找属于自己的那一段代码时,都应该首先看看目录下的这两个文件。

利用Kconfig和Makefile寻找目标代码就像利用地图寻找目的地一样,我们需要利用Kconfig和Makefile来寻找所要研究的目标代码。

比如我们打算研究U盘驱动的实现,因为U盘是一种storage设备,所以我们应该先进入到drivers/usb/storage/目录。

但是该目录下的文件很多,那么究竟哪些文件才是我们需要关注的?这时就有必要先去阅读Kconfig和Makefile文件。

对于Kconfig文件,我们可以看到下面的选项。

config USB_STORAGE_DATAFABbool "Datafab Compact Flash Reader support (EXPERIMENTAL)"depends on USB_STORAGE && EXPERIMENTALhelpSupport for certain Datafab CompactFlash readers.Datafab has a web page at </>.显然,这个选项和我们的目的没有关系。

学习Linux的心得(精选6篇)

学习Linux的心得(精选6篇)

学习Linux的心得学习Linux的心得(精选6篇)在平日里,心中难免会有一些新的想法,应该马上记录下来,写一篇心得体会,这样能够给人努力向前的动力。

一起来学习心得体会是如何写的吧,以下是小编为大家整理的学习Linux的心得,希望对大家有所帮助。

学习Linux的心得篇1本学期对于Linux系统的学习,让我对Linux有了一定的了解。

我知道了Linux只是个内核。

现在的Linux操作系统,都是用这么一个内核,加上其它的应用程序构成的。

Linux最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一,使其在金融、安全等部门有很重要的应用。

学习Linux,首先我们应该从基础开始学起。

对Linux操作系统的功能、版本、特点,以及Linux系统安装和图形环境有较全面的了解。

Linux命令是必须学习的。

虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。

Linux是一个命令行组成的操作系统,精髓在命令行,学习如何在安全的环境中执行系统命令,包括有关文件、目录、文件系统、进程等概念,如何使用相应的命令对文件、目录、进程等进行管理,了解遇到问题时,如何找到帮助信息等。

Linux常用命令,有echo 命令、date命令、passwd命令、file命令、ls命令、touch命令等。

要明白学好Linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在学习初期。

要增加自己的Linux技能,只有通过实践来实现。

只要多动手,就一定会有收获。

遇到问题时要自己去寻找答案,在寻找答案的过程中,会学到更多知识。

应该说目前我们对于Linux的学习只是入门而已,学习Linux是一个长期的过程,很耗时间。

作为电子信息工程专业的学生,对我们来说,Linux将来主要应用于嵌入式Linux系统的开发,这非一日之功,我们还需要不断深入地学习它。

最后,衷心感谢唐磊老师一学期来的辛苦教学,唐老师幽默风趣的教学方式给我们的课堂带来很多欢乐。

想要成为Linux底层驱动开发高手这些技巧绝对不能错过

想要成为Linux底层驱动开发高手这些技巧绝对不能错过

想要成为Linux底层驱动开发高手这些技巧绝对不能错过对于想要成为Linux底层驱动开发高手的人来说,掌握一些关键技巧是非常重要的。

本文将介绍一些不能错过的技巧,帮助读者提升自己在Linux底层驱动开发领域的能力。

1. 深入理解Linux内核:在成为Linux底层驱动开发高手之前,你需要对Linux内核有深入的理解。

了解内核的基本概念、代码结构和内核模块之间的关系是非常重要的。

阅读Linux内核的源代码、参与内核邮件列表的讨论以及阅读相关的文献资料都是提升自己技能的好途径。

2. 熟悉底层硬件知识:作为底层驱动开发者,你需要熟悉底层硬件的工作原理。

这包括了解处理器架构、设备的寄存器操作、中断处理等。

掌握底层硬件知识可以帮助你编写高效、稳定的驱动程序。

3. 学习使用适当的开发工具:在Linux底层驱动开发中,使用适当的开发工具是非常重要的。

例如,使用调试器可以帮助你快速定位驱动程序中的问题。

掌握使用GCC编译器、GNU调试器(GDB)和性能分析工具(如OProfile)等工具可以提高你的开发效率。

4. 阅读相关文档和源代码:Linux底层驱动开发涉及到大量的文档和源代码。

阅读设备供应商提供的文档、Linux内核源代码以及其他相关文献资料可以帮助你更好地了解特定设备的工作原理和使用方法。

5. 编写清晰、高效的代码:编写清晰、高效的代码对于成为Linux底层驱动开发高手是至关重要的。

使用良好的编码风格、注释和命名规范可以提高代码的可读性。

此外,了解Linux内核的设计原则和最佳实践也是编写高质量驱动程序的关键。

6. 多实践、调试和优化:在实际开发过程中,积累经验是非常重要的。

通过多实践、调试和优化不同类型的驱动程序,你可以更好地理解Linux底层驱动开发的技巧和要点。

此外,学会使用内核调试工具和性能分析工具可以帮助你提高驱动程序的质量和性能。

7. 参与开源社区:参与开源社区是成为Linux底层驱动开发高手的好方法。

Linux操作系统的基础知识大全

Linux操作系统的基础知识大全

Linux操作系统的基础知识大全对于初学Linux的新手来说,掌握基础知识尤为重要。

下面由店铺整理了Linux操作系统的基础知识大全的相关知识,希望对你有帮助。

Linux操作系统基础知识大全:计算机概述1.计算机接收用户输入指令数据,经过cpu数据与逻辑单元运算处理后,产生或储存成有用的信息--->I/O设备+cpu+处理信息=计算机.2.计算机五大单元:I/O单元内存单元 cpu内部控制单元 cpu内部算术逻辑单元3.cpu中含有指令集->RISC,精简指令集,指令执行时间短性能好->arm系列等.->CISC,复杂指令集,指令处理任务内容丰富->x86系列等.4.主板将所有的设备连接在一起,重要的组件是芯片组->Intel系列cpu主板芯片组->俩个桥接器控制各组件的通信->北桥负责连接速度较快的cpu,内存与显卡等组件. –>南桥负责连接速度较慢的外设。

5.AMD系列cpu为了加速cpu与内存的通信,将内存的控制组件集成在cpu中.这与Intel不同。

6.主板的各组件cpu 内存磁盘设备(IDE/SATA) 总线芯片组显卡接口(PCI-Express) 适配卡7.cpu的外频指的是cpu与外部组件进行数据传输或运算时的速度,倍频则是cpu内部用来加速工作性能的一个倍数,俩者相乘才是cpu的频率8.cpu超频指的是将cpu的外频或倍频通过主板的设定功能更改成更高的频率,倍频出厂时就设置好了,所以通常改的是cpu的外频.9.北桥的总线称为系统总线,是内存的传输主要信道所以速度快.南桥的总线则是I/O总线,用于联系外设.10.北桥所支持的频率我们称为前端总线速度(FSB),每次传送的位数则是总线宽度,每秒可传送的最大数据量->FSB*总线宽度。

11.cpu每次能够处理的数据量称为字组大小,计算机的32/64位设置便是由cpu解析的字组大小而来.12.pc内存的主要组件为动态随机访问内存(Dynamic Random Access Memory),断电数据消失->SDRAM同步动态随机访问内存->DDR SDRAM(double data rate)13.SRAM(Static random accdss memory)静态随机访问内存可集成在cpu内部的作为高速缓存(L2 cache).14.BIOS(basic input output system)是一套开机读取的程序写在主板的ROM中,现在随着计算机的发展,BIOS需要更新所以现在BIOS写在flash memory或eeprom中.15.主板上的各组件参数写在一个cmos芯片中,通过BIOS读取和更新数据.16.显卡(vga graphics array),北桥连接,随着组件的升级,数据传送的频宽原来越大目前的规格是PCI-Express.17.硬盘由许多的盘片,机械手臂,磁头,主轴马达所组成,数据写在磁性盘片上,读写通过机械手臂上的磁头(head)来完成,主轴马达让盘片转动,机械手臂伸展让磁头在盘面上进行读写操作.18.盘面上有多个同心圆绘制的图形,而从圆心以放射状的方式分割出的最小的存储单位就是扇区,每个扇区大小为512bytes,扇区组成的圆就是一个磁道,多盘片上,所有盘面上的磁道可以组成一个柱面,柱面是分割磁盘的最小单位.head*cylinder*sector*512bytes19.硬盘与主机的传输接口(ide sata scsi)ide接口可以接俩个IDE 设备,需要调整跳针设定主从磁盘.sata接口传输速度快易于安装散热装置,scsi接口的硬盘在控制上含有一块处理器运算速度快而且不会耗费cpu资源.20.主板上的芯片组负责计算机所有设备的通信,cpu通过I/O地址识别设备,各设备通过IRQ中断信道告知cpu该设备工作的状态信息以便于cpu进行分配任务.21.CMOS记载主板上的各种重要参数,如system time,cpu频率和电压,各项设备的I/O地址与IRQ中断等,记录这些需要电所以主板上才有电池.BIOS为写入某一闪存活eeprom的程序,开机执行时加载cmos中参数,尝试调用储存设备中的开机程序,进一步进入操作系统中.22.操作系统是管理和控制计算机系统中的软硬件资源,有效利用计算机的软硬件资源为用户提供一个功能强大,稳定的工作环境,从而为计算机和用户之间起到接口作用的一组程序.23.os提供了程序接口和用户接口,程序接口是程序员通过系统调用操作kernel控制硬件运行,编写的应用程序是操作系统提供的开发接口,所有只能运行在该操作系统之上.用户接口则用于用户与计算机交互,可通过GUI和CLI,其中CLI是命令行接口,需配置shell命令解释器,shell也是运行os之上的应用Linux操作系统基础知识大全:linux的规则与安装1.linux os是多用户多任务的操作系统,是类unix操作系统.linux 有内核版本与发行版本.2.linux之前unix的历史,贝尔实验室mulitics系统->ken thompson的unics(汇编)->ritchie写出unix内核(c语言).->bill joy 写出unix分支bsd--只适合自己计算机硬件,无法再其他架构运行(如不能再x86上运行)->minix系统x86架构的类unix系统->torvalds 写出linux内核.3.POSIX(portable operating system interface)可携式操作系统接口,用于规范内核与应用程序之间的接口.4.GNU与GPL,gnu项目和psf自由软件基金会,GPL通用公共许可证.linux是gnu项目所以开源,而当前的redhat等公司卖linux 发行版本卖的不是系统而是卖的服务.5.为了规范linux发行版本的差异,有fhs和lsb规范,所以各大linux发行版本不同的只是开发商的开发的管理工具和定制的软件不同.6.linux下一切皆文件,设备的访问入口也是以文件的形式存放,由目的单一的小程序组成,组合小程序完成复杂的任务,配置文件保存为TXT文本.7.硬件在linux中的文件名, IDE硬盘/dev/hd[a-d], sata或scsi硬盘/dev/sd[a-p].磁盘的第一个扇区保存俩个重要信息,主引导分区MBR[master boot record],446bytes,分区表记录硬盘分区状态有64bytes.系统开机会读取加载mbr,分区表只有64bytes,所以只能容纳4个分区,称为主分区或扩展分区.扩张分区的目的是利用额外的扇区来记录分区信息,扩展分区之下的分区称为逻辑分区.扩展分区只能有一个.8.MBR安装引导加载程序的地方,boot loader安装在这,boot loader是读取内核文件来执行的软件.具有的功能提供选择菜单载入内核文件转交其他loader.9.开机流程,BIOS读取cmos上的参数,读取加载mbr中的boot loader,进入操作系统.引导加载程序可以安装在mbr和引导扇区.10.每个分区都有自己的引导扇区,可开机的内核文件放置在各分区,loader只能识别自己分区的内核文件和其他的loader.loader可以将管理权交给另一个管理程序.11.window和linux的磁盘分区.windows下我们可以通过盘符划分磁盘.假设Windows下只有c可以当做盘符.那我们怎么划分区呢?我们可以在c盘建一个文件夹,然后把其他的分区装入到这个文件夹中,当我们访问我们在c盘建的文件夹是实际上访问的是这个分区。

linux操作系统知识点

Linux 操作系统基础知识概览以下是一些关于Linux 操作系统的常见知识点:1.Linux 基础:●Linux 的起源和发展历史●Linux 的主要组成部分:内核、Shell、文件系统等●常见的Linux 发行版(如Ubuntu、Debian、CentOS 等)●常用的命令行工具和基本命令(如ls、cd、mkdir、rm 等)2.用户和权限管理:●用户账户的创建和管理●用户组的概念和使用●文件和目录的权限设置和管理●sudo 权限和root 用户的重要性3.文件系统:●Linux 文件系统的层级结构●常见的文件系统类型(如ext4、XFS、Btrfs 等)●挂载和卸载文件系统●磁盘和分区管理工具(如fdisk、parted 等)4.进程管理:●进程的概念和属性●进程的创建、终止和管理●进程状态的了解和监控●进程间通信的方式(如管道、信号、共享内存等)5.网络和安全性:●网络配置和网络接口管理●网络命令和工具(如ifconfig、ping、ssh 等)●防火墙和安全性措施(如iptables、SELinux 等)●远程访问和远程管理(如SSH、SCP、rsync 等)6.软件包管理:●软件包管理系统(如apt、yum、dnf 等)●软件包的安装、升级和卸载●软件包的依赖关系和解决依赖问题●软件源和仓库的管理7.Shell 脚本编程:●Shell 脚本的基础语法和结构●变量、条件语句、循环和函数的使用●Shell 命令和管道的组合●脚本的调试和错误处理以上只是Linux 操作系统知识的一些常见方面,涵盖了基础知识、用户和权限管理、文件系统、进程管理、网络和安全性、软件包管理以及Shell 脚本编程等。

要深入学习Linux,建议进一步学习和实践这些知识点,并探索更多高级主题,如网络服务配置、系统性能优化等。

linux培训

Linux培训一、了解Linux操作系统Linux是一种开源的操作系统内核,广泛应用于各种计算机设备中。

在这个Linux培训中,我们将深入探讨Linux操作系统的基本概念和工作原理。

1.1 Linux的起源与发展Linux操作系统最初由Linus Torvalds在1991年创建,其发展历程经历了多个版本的更新和改进。

Linux的开源性质使得其拥有庞大的开发社区,不断推动系统的完善与发展。

1.2 Linux系统的特点Linux系统具有稳定、安全、高效等特点,被广泛应用于服务器、嵌入式设备等领域。

通过学习Linux,可以更好地理解计算机系统的运行原理,增强自身的技术能力。

二、Linux基础操作在Linux培训中,我们将学习一些基本的Linux操作命令,帮助大家快速熟悉Linux系统的使用。

2.1 文件与目录操作•ls:列出目录内容•cd:切换目录•pwd:显示当前工作目录•mkdir:创建新目录•rm:删除文件或目录2.2 文件权限管理Linux系统采用权限控制的方式管理文件和目录的访问权限,理解和掌握文件权限是使用Linux系统的基础。

2.3 进程管理•ps:显示当前进程信息•top:实时显示系统资源占用情况•kill:终止指定进程三、Shell编程与脚本Shell是Linux系统的命令解释器,通过编写Shell脚本可以实现自动化任务,提高工作效率。

3.1 Shell编程基础•变量:在Shell脚本中定义和使用变量•流程控制:if、else、for、while等语句的使用•函数:编写和调用函数3.2 实例:编写一个简单的Shell脚本通过实际示例,展示如何编写一个简单的Shell脚本,实现文件备份任务等功能。

四、网络管理与安全Linux系统作为服务器操作系统,网络管理和安全至关重要。

在这个部分,我们将学习如何管理网络配置和提高系统安全性。

4.1 网络配置•ifconfig:查看和配置网络接口信息•ping:测试网络连通性•iptables:配置防火墙规则4.2 安全加固•定期更新系统补丁•配置防火墙规则•禁用不必要的服务五、系统性能优化Linux系统的性能优化是运维工作中的重要一环,通过一些调优技巧可以提升系统性能,提高应用的响应速度。

学会使用Linux操作系统

学会使用Linux操作系统Linux操作系统,作为一种开源的操作系统,已经在计算机领域中得到了广泛应用。

对于计算机科学和信息技术专业的学生来说,学会使用Linux操作系统是一项必备的技能。

本文将介绍学习Linux操作系统的必要性,以及如何有效地使用Linux进行各种任务。

一、学习Linux操作系统的必要性学习Linux操作系统有以下几个重要原因:1.广泛应用:Linux操作系统被广泛应用于服务器、网络设备、嵌入式系统等领域。

掌握Linux操作系统的使用将为未来的工作和研究提供很大帮助。

2.开源优势:Linux是一种开源操作系统,拥有强大的社区支持和开放的开发环境。

这使得Linux操作系统具有高度的可定制性和灵活性,可以根据个人需求进行配置和扩展。

3.高效稳定:Linux操作系统以其高效和稳定著称。

相对于其他操作系统,Linux具有更好的性能和更低的系统崩溃率,能够提供更好的用户体验。

4.安全性:Linux操作系统具有较高的安全性,经过严格的权限管理和系统监控,使得Linux系统更难受到病毒和黑客攻击。

二、Linux操作系统的基本用法1.安装Linux操作系统:首先需要选择适合自己的Linux发行版,并下载相应的ISO镜像文件。

然后,将ISO文件刻录到光盘或创建启动盘,通过引导系统进行安装。

2.登录和用户管理:每个Linux系统都可以有多个用户账户。

使用用户名和密码登录系统后,可以通过命令行或者图形界面进行用户管理、文件管理等操作。

3.文件系统和文件权限:理解Linux的文件系统和文件权限是学习Linux操作系统的重要一步。

掌握文件和目录的基本操作,以及权限设置和访问控制,是使用Linux操作系统的关键。

4.软件包管理:Linux操作系统采用包管理工具来安装、更新和删除软件。

常见的包管理工具有APT、RPM等,通过这些工具可以方便地获取和安装各种软件包。

5.命令行操作:与图形界面不同,Linux操作系统通常通过命令行进行操作。

Linux系统入门学习方法

Linux系统入门学习方法相信大伙都听说过linux系统,然而对于这个系统,总使让新手感觉茫然,Linux系统入门学习方法是什么?下面是相关的知识,欢送阅读。

学习linux这个过程中。

你先要找一本是适合自己的书籍,我推荐《Linux就该这么学》,非常非常适合零根底的初学者进展学习,我下面会仔细的说道我为什么选择这本书来作为我的启蒙书籍。

如果要真正掌握这个东西,确实需要花费很长很长时间,但入门这个阶段,你必须得对命令行熟练。

因为在命令行操作,就相当是在和linux系统对话,不断向内核提出申请,需要进展文件的一系列的操作。

下面就简单的介绍一些命令。

可以供大家做一些简单的学习。

Linux的文件操作很多,为什么这么说呢,linux有一句话比拟能验证这一问题。

那就是一切皆文件。

不管是外设还是硬盘。

都被系统映射成文件。

所以文件操作就非常重要。

文件处理命令:cd、file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln cd命令,切换不同的目录,cd ~ 这个命令在任何情况都可以把当前目录切换到用户根目录。

cd .. 切换到上一目录,也就是父目录。

mkdir命令,创立一个目录,这个目录可以创立任何一个地方,这个取决于绝对路径和相对路径。

touch命令,这个是用来创立一个新文件,当然你也可以vi ,nano等器创立一个文件。

新手我还是建议用touch吧。

ls命令查看任意目录的文件,ls 表示查看当前目录下的文件,当然也可以查看主目录下,不过需要你对绝对路径和相对路径区分清楚。

当然,我在这里讲的知识只是九牛一毛,真正要弄清楚,还希望你们好好去查阅相关文档。

比方说网络操作命令:ifconfig、ip 、ping 、 stat 、tel、 ftp、 route、 rlogin rcp 、finger 、 mail 、nslookup等等。

那么问题来了,linux这么难,怎么学才能掌握它呢?我想很多人都对linux感兴趣,但对linux去无从下手,在我身边也有很多人喜欢自学,但是刚开始还很感兴趣,学会了很多命令,但是过了不久,却渐渐失去了兴趣,因为对于后续的shell语言,系统编程,网络编程,搭建效劳器等一系列的问题油然而生。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅谈如何学习linux
∙浏览:1242
∙|
∙更新:2014-01-04 22:01
一.为什么要学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桌面环境操作
掌握等软件包的常用安装方法
学习添加外设,安装设备驱动程序(比如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 (AT&T语法,保护模式)
保护模式下的比较复杂,基本上每本讲内核的书都会有介绍有80x86 Intel语法的基础就行,
有兴趣可以看看Intel的官方网站
3.数据结构(离散数学)
计算机专业的核心课程,重要性我就不说了
4.操作系统原理
看懂这个再去读linux吧
5.微机原理/组成原理(数字电路)
底层直接和硬件打交道,所以这个也要6.了解linux/unix
我想至少你要会操作吧,了解unix的API 7.软件工程/编译原理
这方面的经典书去可以搜到很多我觉得APUE这种书不适合初学者,还是先看看UPE。

相关文档
最新文档