linux学习心得.docx
- 文档编号:4078831
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:10
- 大小:26.50KB
linux学习心得.docx
《linux学习心得.docx》由会员分享,可在线阅读,更多相关《linux学习心得.docx(10页珍藏版)》请在冰豆网上搜索。
linux学习心得
linux学习心得
inux学习步骤2014-08-2615:
061,linux不是玩具
如果你想系统的学习linux,你必需清楚的认识到这一点.现在有很多人,号称是linux爱好者,但是他们大部分的事情还是用windows做,而linux只是作为一个随便玩玩的系统.他们懂得一些linux的基本操作,知道有linux这个玩艺,也因为经常听人家说linux好就咬定了linux就是好.只要有人说linux比windows差,那么他们就奋起反驳,他们也看不起用windows的人,认为用windows的人水平低.但是自己用电脑的大部分时间还是用windows并且把重要的文件都放在了windows分区,因为他们骨子里只把linux当做玩具,没有真正领悟linux的精髓所在.如果你真正想系统的学习linux,想用linux有所作为,那么请忘记windows的思维方式,慢慢感受和习惯linux的操作方式,总有一天你会真正体验到他的奥妙所在,从而从自己内心深处喜欢他,使用他,而不是为了赶时髦或向人炫耀而使用他.
2,手头有一本好的入门教材吗
这是我的一个比较偏激的观点.
如果你现在开始下决心学习linux了,那么第一件你要做的事情是到书店去挑一本好书.而不是到论坛社区去问该用什么版本,该如何学习linux.一本好的入门教材可以让你快速领悟linux的操作方式,系统的基本使用等等.而且都是前人总结经验写出来的,他可以帮你搭起一个学习linux的框架,对linux有一个总体的认识.就好比建一撞大楼前先打好地基,搭好混凝土框架.以后就可以慢慢往这个框架里添砖加瓦,最后建起大楼.而那些想急于学习的,不想看书,只想靠混论坛来学习linux知识的人,就好比建一撞大楼,今天建好第一层,然后第一层就要全部粉刷好,装修好,家具买好住进去,然后第二天再开始建第二层.这样没有整体规划的学习是学不好linux的,最后的结果是浪费自己的时间,也浪费别人的时间.如果你不信,可以让实事去告诉你,以一年为限,你和你的一个朋友同时从0开始学linux,计算机基础差不多.你去买几本好书自己慢慢看边看边做实验,让你的朋友整天到各大论坛瞎混零散的学些linux知识.也许一开始,你的朋友会比你懂得多,但是一年以后你的水平肯定在你的朋友之上.在初学阶段,不要随便在论坛上发问,多看书是根本,即使真的非问不可的问题,也要先自己动手察资料解决.实在不行再来问,高手不会鄙视菜鸟,因为每一个高手都是从菜鸟过来的,他们都知道菜鸟的苦衷.但是高手会看不起那些自己不愿动手动脑不会学习解决问题而只想得到现成答案的人.那样的人会被高手在心里暗骂成不配用linux的蠢货.
你需要以下几种书:
一本好入门教材->一本linux指令参考手册->linux系统管理手册->讲解linux系统原理的书.
一开始,你只需要入门教材就可以了.并且严格安教材的讲解去学习,不要一天到晚想着去装显卡驱动啦,装游戏啦,装软件啦,这些都没有必要.你就当你自己的电脑不能上网,只能通过看书学习.慢慢看书,稳抓稳打.慢慢地就融会贯通了.这时候你再到linux初学者论坛去看看,你在那里早已经是高手了.
另外,一开始你要选定一本入门教材,但是不能只看一本,因为有些书上讲的,可能是另外的书上没有的.因此,重点选一本教材看完.然后再看两三本入门教材浏览一下.作为对第一本书的知识的扩充和巩固.在看书过程中,如果你有什么不懂的,不要急于上论坛问,自己认真看几次,
实在不懂没有关系,把问题放在那里.不要钻牛角尖不懂不肯放手,这种精神是好的,但是方法是错误的.你尽管学下去,也许你看完书本以后的内容,就对前面不懂的内容豁然开朗了.这是在学习linux中常有的情况.
另外,现在很多入门书籍是针对非技术型用户的.(我把那些对linux本身不感兴趣,只想用他来上网,听音乐和打字的人称为非技术型用户,而把对linux本身感兴趣的人称为技术用户)这些针对非技术型用户的入门书籍几乎通篇都是插图,讲解的内容都是如何在图形界面下操作.这些书籍并不能帮你成为一个高手.反而会让你养成倚赖鼠标和图形界面操作的习惯以后很难改掉.因此不能看这些书,一定要买那些一开始就从系统基本机构基本命令开始讲解的书籍.我看过的第一本linux入门书籍共有十多章,但是他从第十一章开始才大致的讲解了一下图形界面的知识.我很感谢这本书,让我一开始就脱离了windows的思维方式,给我以后的进一步学习带来了很大帮助.
完成以上的内容,你就完成了建大楼打地基建混凝土框架的过程了.可以接下来进一步学习了.
3,你看完系统自带的文档了吗?
当你完成入门的过程后,就可以开始读其他的文档,然后到论坛的精华区看看,向你建起来的大楼框架中添砖头了.当然,首先要读的,还是系统自带的文档.
绝大多数linux发行版都自带非常详细的文档.比如我一直在用的redhat,他有从系统安装到系统安全,针对不同层次的人的详尽文档.静下心来,把这些文档读完,比看任何论坛的精华区都有用.书籍和文档就好比是你每天都离不开的一日三餐,论坛区的精华文档就好比是点心和水果.你可以不吃点心和水果,但是决不能不吃正餐.
当然,不能为看文档而看文档,你一定要边看边安文档中说的做试验验证.这样才印象深刻,否则看过就忘记了等于没有看.
另外,如果真心想学习linux就不要吝啬,也不要害怕丢失数据而不敢做实验.我建议你去买一个小的二手硬盘,然后放开手干.不要怕丢失数据而不敢做,如果你没有学会技能,将来做了linux系统管理员或者网络管理员到那时因为不会而丢了数据就是大事情了.
4,学习linux不是逛自由市场.
经常看到有人问用什么版本的linux好,其实只要你认真学习无论什么版本都挺好的.要知道,开发linux发行版的人都是通读过linux内核代码,对linux原理极其精通的人,而且每一个开发团队都对他的发行版做过测试后放出的.那些国际知名的大品牌更是如此.因此,讨论什么版本好并无意义,关键是你是不是真心想学.不过,为了避免曲高和寡,最好选用的人多的版本,比如redhatmanrakesuse等等.国内有一两个linux版本做的也不错,但是国内的linux都是面向非技术型用户开发的,因此,如果你想成为高手,建议不要用国内的版本.
学习linux不是逛自由市场,选定版本就要静下心来学习.不要今天换版本明天要升级.这样对你没有好处.我见过一些人号称用过十几种甚至几十种linux,向人谈论起来头头是到,好像懂的很多,但是如果你让他去用linux搭建一个web服务器,做一个linux网关,他就什么都不会了.他们把时间都浪费在了版本的转换上了.
5,你能看懂英文文档吗?
谈论这个问题,我有点低气不足,因为我自己的英语很差.但是,至少我可以无障碍的读完一般的计算机文档.计算机英语很简单,只要熟悉了计算机专业英语,高中毕业的水平就可以轻松的阅读计算机文档了.如果你的英语实在太差了,连最简单的计算机英语文档都看不懂,那么在学习linux的同时,请赶紧学习英语.也许你说,你可以看翻译的文档,当我还是一个菜菜鸟的时候,也是这样认为的.但是,后来才发现,如果你想深入学习linux,看不懂因为文档实在是太难了.写的最好的,最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的.即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表.你去看看各大软硬件生产商的官方网站,有哪一个不是用英语作为其主站的?
长期用windows的人会很不习惯这一点,装个软件还要看半天文档,应为windows用起来实在太简单了.但是如果你想学习linux就必需学会看各种文档,而大部分的文档都是用英语写的.我发现很多人甚至连man文档都不会看,有什么命令不会用了就跑到论坛上来问,还装出一副可怜相,乞讨一个命令的用法.有这些时间还不如自己看看man文档,即使你一个一个单词的翻译成中文再自己看都比问别人强,因为别人的回答再怎么详尽都比不上man文档详尽.安装一个新的软件时先看readme,再看install然后看faq,最后才动手安装,这样遇到问题就知道为什么.否则,说明文档都不看,结果出了问题再来找答案反而浪费时间!
古人说欲速则不达就是这个道理!
6,忘记windows的思维方式
思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度.现在很多人用linux.但是,他们用linux的方式完全是windows的那一套方式.骨子里都是windows的思想.这样是不能领悟linux的精髓体验不到他的优越性的.我前几天看到一个朋友要把刚装了不到2天的mandrake10删除掉,我问他为什么,他说太慢了,受不了,还是用windows快.然后我留意了一下他用linux的方式,他的所有操作都带着windows的影子.他连最基本的删除,移动文件这样的操作都要用鼠标,这样当然慢了!
最后我只好说,你删除吧,你不适合用linux,linux不是这样用的.各位可以去看看那些linux高级用户,他们是怎样操作的.通常他们都是在x上开一个xterm或者rxvt终端,80%以上的操作都在这个终端下用命令完成,因为linux的命令行十分强大,速度也十分快,简单的几个命令的组合就能完成非常复杂的操作.举一个例子:
linux的常用命令find,去看看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会了就对他爱不释手.他的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,那么他能完成非常复杂的操作,如果同样的操作你用图形界面的工具来完成,恐怕要多花十几陪的时间.因此linux高手经常会说:
如果没有find和grep我们还怎么活.但是现在大部分的linux初级用户受到windows影响都喜欢用图形界面的工具来完成一些基本的操作,我并不是说图形界面不好.只是由于linux和windows设计思想的不同他们的操作方式也有很大不同.在windows下用图形界面操作会比敲命令快,但是linux是一个命令行组成的操作系统,他的精髓在命令行!
无论图形界面发展到什么水平这个原理是不会变的!
7,入门以后多学命令
当你看完了一两本入门书籍后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令,初学阶段只要学会书上提到过的命令就可以了.单靠学习各种命令而成为高手是不可能的,但不会命令而成为高手也是不可能的.这就好比学英语,什么语法
都不懂,只捧着单词手册背单词是学不会英语的,但是没有单词词汇量英语水平也提不高的.
在linux中学习命令的最好办法是学习bash脚本编程.bash脚本比起其他语言来学习简单,但是功能却十分强大.通过学习bash编程,能让你掌握大量的linux命令.另外,买一本命令参考手册是必要的,遇到不知道怎么用的命令可以随时查询,这要比察man文档快.特别适合英语不好,看不懂man文档的人.
在linux中,命令可分为系统基本命令和应用程序命令.系统基本命令是所有的unix类系统都支持的命令,走到哪都不变,只要是unix类系统上就肯定有.比如ls,rm,rmdir,cp,cd,mv,cat等等.这样的基本命令大约有200个,这些命令是一定要掌握的,我买了一本这本书非常好,他根据命令的常用指数分类,标明3颗星的为最常用命令,一定要掌握,两颗星的其次,1颗星的只要知道一下就可以了虽然现在都已经fc3了,但是经典的unix基本命令几十年来都没有变过!
另外有些命令是linux特有的或者是某一个应用程序的可执行文件比如xmms播放器.这些只要知道就可以了,不知道也无所谓.有些命令比较少用,因此通常都记不住他的用法,对于这些命令至少要知道有这个命令,脑子里有印象,需要用的时候察一下手册就可以了,但是决不能不知道这个命令的存在!
8,学会管理系统
等到有了基本知识,也掌握了一定量的命令用法后,就可以进一步学习管理系统.这些内容入门书上会有,但是不会很深入.要深入的学习系统管理,就要去买一本类似之类的书.认真的看书并做实验,可以让你很快的进步.学习配置各种网络服务器,用linux搭建网络,这些都是学习linux系统管理和网络管理的好方法.到了这个阶段就可以经常上网察察资料,看发布软件的官方网站文档和faq,看看论坛精华区文章.但是不能本末倒置,多看书还是根本.书籍和官方文档可以让你系统的学习,但是论坛可以让你学到一些小知识,小技巧.我本人也经常到论坛上来看看,因为即便是一个新手,也可能会发现一些你所不知道的小技巧,看论坛可以学到这些小技巧.但是我看文档和看论坛的时间比不会小于4:
1.可以把平时积累的问题一次在论坛上发问.但是初学的时候不要频繁上论坛,因为你要问的问题都在书上写着,耐心一点,你很快就能看到了.
9,了结系统结构
等你有了一定的系统管理知识,知道了/etc下那些配置文件有什么用,知道了一般的网络服务
器如何配置后,就可以去了解系统结构了.了解系统结构不是要你去看什么文件夹放什么内容,而是要学习一些原理性的东西.比如系统是如何引导的,引导后启动了那些东西.系统中哪些是最基本的库文件,有什么用等等.学习系统结构的最好方法是自己做一个linux系统,再也没有什么能比自己做一个linux系统更能学习系统结构的了.lfs(linuxfromstrach)可以教你从源代码自己编译一个系统.通过自己编译一个系统,你就可以了结linux系统结构,知道哪些文件是干什么用的,以及他们如何协调工作.当然,在你达到lfs水平之前还有很多事情要做,比如学会如何编译安装源代码发布的软件和编译新的内核等等.到了lfs水平,那么在大多数linux论坛上你就可以被人称作了!
到了这个地步,就相当于一撞大楼已经基本建好,但是还需要粉刷和装修,真正的细活还在后面!
永远记住天外有天,人外有人的道理.即便有了lfs水平,在那些搞linux系统开发,通读过linux内核代码的人看来你还是一个菜鸟.因此,请时刻保持虚心的态度.即便是在论坛上只有一颗星级别的人,也有可能是一个潜在的,真正的高手!
大多数真正的高手平时都在搞研发工作,哪里有时间上论坛啊!
倒是有很多大学还没毕业的学生,整天混在论坛上.
10,学习专业课程
如果你不是计算机专业的,而想把linux学好,就一定要学习专业课程.学习微机原理,操作系统,计算机网络等等专业课程是必需的.为什么同时开始学习linux,有些人学的非常快,不到半年就成了高手,有些人玩来玩去还玩不出名堂,玩了一两年还是菜鸟?
因为那些学得快的人有基础,他们都学过专业课程.同样一篇文档,没有基础的人可能看了三遍还不明白,基础扎实的眼睛扫两下就懂了!
这就是专业和非专业的差别!
因此,要想达到更高的境界就一定要学习基础的专业课程.
11,保持虚心学习的态度
我想再重复一遍天外有天,人外有人的道理!
保持虚心的学习态度不仅能让你学到更多知识,而且会让你受人尊重.
在linux的世界里,如果你想靠混论坛,发水贴,换几颗星星增加一下级别,然后再面对菜鸟说几句牛哄哄的话来赢得别人的尊重是不可能的.即便是一个刚入门的菜鸟,也能分辨你回答问题的质量,从而知道你到底有多少水平.另外,当你成了的时候,你也能从那里学到很多知识.因为有很多问题是你从来没有想过的,认为自己肯定会的,但是实际遇到的时候会有困难.而们往往更善于发现这类问题.这就是中国人常说的!
在linux的世界里,越是水平高的人越谦虚,因为他们知道自己还有很多不知道的,而那些半瓶水就想晃荡的人反而自以为是,因为他们还不知道自己还有很多不知道的!
去看看,嵌入式开发和unix版块的牛人,他们很多都是有过好几年linux方面的工作经验,精通linux和unix的好手,但是每个人都保持着非常谦逊的态度,这些人是值得尊敬的第三篇:
linux学习心得
linux,sh脚本编程
在linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。
shell不仅仅是命令的收集,而且是一门非常棒的编程语言。
您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。
下面,让我们一起来看看shell是如何工作的:
建立一个脚本
linux中有好多中不同的shell,但是通常我们使用bash(bourneagainshell)进行shell编程,因为bash是免费的并且很容易使用。
所以在本文中笔者所提供的脚本都是使用bash。
如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、kedit、emacs、vi等来编写我们的shell程序。
程序必须以下面的行开始:
#!
/bin/sh
符号#!
用来告诉系统它后面的参数是用来执行该文件的程序。
在这个例子中我们使用/bin/sh来执行程序。
当编辑好脚本时,如果要执行该脚本,还必须使其可执行。
要使脚本可执行:
chmod+xfilename
然后,您可以通过输入:
./filename来执行您的脚本。
注释
在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。
我们真诚地建议您在程序中使用注释。
如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。
变量
在其他编程语言中您必须使用变量。
在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。
要赋值给一个变量,您可以这样写:
变量名=值
取出变量值可以加一个美元符号在变量前面:
#!
/bin/sh
#对变量赋值:
a=
#现在打印变量a的内容:
echo
echo$a
在您的编辑器中输入以上内容,然后将其保存为一个文件first。
之后执行chmod+xfirst使其可执行,最后输入./first执行该脚本。
这个脚本将会输出:
ais:
helloworld
有时候变量名很容易与其他文字混淆,比如:
num=2
echo
这并不会打印出,而仅仅打印,因为shell会去搜索变量numnd的值,但是这个变量时没有值的。
可以使用花括号来告诉shell我们要打印的是
num变量:
num=2
echo
这将打印:
thisisthe2nd
有许多变量是系统自动设定的,这将在后面使用这些变量时进行讨论。
如果您需要处理数学表达式,那么您需要使用诸如expr等程序。
除了一般的仅在程序内有效的shell变量以外,还有环境变量。
由export关键字处理过的变量叫做环境变量。
我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。
shell命令和流程控制
在shell脚本中可以使用三类命令:
unix命令:
虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。
这些命令通常是用来进行文件和文字操作的。
常用命令语法及功能
echo:
将文字内容打印在屏幕上
ls:
文件列表
wc-lfilewc-wfilewc-cfile&:
计算文件行数计算文件中的单词数计算文件中的字符数
cpsourcefiledestfile&:
文件拷贝
mvoldnamenewname:
重命名文件或移动文件
rmfile&:
删除文件
grep‘pattern’file&:
在文件内搜索字符串比如:
grep‘searchstring’filecut-bcolnumfile&:
指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:
输出每行第5个到第9个字符cut-b5-9file千万不要和cat命令混淆,这是两个完全不同的命令
catfile:
输出文件内容到标准输出设备上
filesomefile&:
得到文件类型
readvar:
提示用户输入,并将输入赋值给变量
sortfile:
对file文件中的行进行排序
uniq:
删除文本文件中出现的行列比如:
sortfile|uniq
expr:
进行数学运算example:
add2and3expr23
find:
搜索文件比如:
根据文件名搜索find.-namefilename-print
tee:
将数据输出到标准输出设备(屏幕)和文件比如:
somecommand|teeoutfilebasenamefile&:
返回不包含路径的文件名比如:
basename/bin/tux将返回tuxdirnamefile&:
返回文件所在路径比如:
dirname/bin/tux将返回/bin
headfile&:
打印文本文件开头几行
tailfile:
打印文本文件末尾几行
sed:
sed是一个基本的查找替换程序。
可以从标准输入读入文本,并将结果输出到标准输出。
该命令采用正则表达式进行搜索。
不要和shell中的通配符相混淆。
比如:
将linuxfocus替换为linuxfocus:
cattext.file|sed‘s/linuxfocus/linuxfocus/’>newtext.file
awk:
awk用来从文本文件中提取字段。
缺省地,字段分割符是空格,可以使用-f指定其他分割符。
catfile|awk-f,’{print$1$3}’这里我们使用,作为字段分割
符,同时打印第一个和第三个字段。
如果该文件内容如下:
adambor,34,indiakerrymiller,22,usa命令输出结果为:
adambor,indiakerrymiller,usa
概念:
管道,重定向和backtick
这些不是系统命令,但是他们真的很重要。
管道(|)将一个命令的输出作为另外一个命令的输入。
grepfile|wc-l
在file中搜索包含有的行并计算其行数。
在这里grep命令的输出作为wc命令的输入。
当然您可以使用多个命令。
重定向:
将命令的结果输出到文件,而不是标准输出。
>写入文件并覆盖旧文件
>>加到文件的尾部,保留旧文件内容。
反短斜线
使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。
命令:
find.-mtime-1-typef-print
用来查找过去24小时内修改过的文件。
如果您想将所有查找到的文件打一个包,则可以使用以下脚本:
#!
/bin/sh
#theticksarebackticks(`)notnormalquotes(‘):
tar-zcvflastmod.tar.gz`find.-mtime-1-typef-print`
流程控制
表达式如果条件为真则执行then后面的部分:
if....;th
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 学习心得