免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

[学习分享] “赢”十一,Linux技术学习赶帮超!速来参与得好礼!(获奖名单已公布-2014-11-10) [复制链接]

论坛徽章:
0
121 [报告]
发表于 2014-10-27 09:45 |只看该作者
因最近各种的不可抗因素(比如上个星期的政府监察,和今天早上的人鼠大战!!!),进度严重落后,刚看到第12章!今天打算把数据库支持这部分看完。刚刚入手了两本python书籍,《Python开发实战》和《编写高质量代码:改善Python程序的91个建议》。

论坛徽章:
0
122 [报告]
发表于 2014-10-27 21:36 |只看该作者
本帖最后由 eagerly1 于 2014-10-28 06:54 编辑

刚看完阿铭课程视频第八课,vim编辑工具。有一些命令还是可以马上记住的:w写入,相当于保存;q退出vim;!强制执行;n表示数值,比如3行;5yy,复制当前行往下的5行;p从当前行上方粘贴剪切板的内容;dd删除行;u撤销或还原操作;命令很多,实在记不住就查哈。关键是要知道vim的三种模式或状态:编辑模式,命令模式,底行模式(以:开头)。以及三者之间的切换。不同模式下命令是不一样。
这个视频还提供了安装一个未知包的方法:
#安装一个包, 比如vim,过程
# yum list |grep vim  # (出现好多名字,是哪个呢)
vim-common.i686 。。。
vim-enchanced.i686。。。
vim-minimal.i686。。。
-Centos-201303020136.i386/6.4
vim-x11.i686。。。
#which vim            #(先查vim的路径)
/usr/bin/vim           #  阿铭说是通过已经安装了vim的系统上查出的,我个人觉得,就是记住这个路径好了/usr/bin/
#rpm -qf /usr/bin/vim         #(通过路径查安装包)
vim-enchanced-7.2.411-1.8.e16.i686 # 就是这个包了

#yum install -y vim-enchanced

论坛徽章:
20
CU大牛徽章
日期:2013-03-13 15:29:072015亚冠之阿尔希拉尔
日期:2015-09-12 09:33:562015年亚冠纪念徽章
日期:2015-09-22 17:12:202015亚冠之本尤德科
日期:2015-10-29 16:18:18神斗士
日期:2015-11-23 13:37:23青铜圣斗士
日期:2015-12-07 10:14:28平安夜徽章
日期:2015-12-26 00:06:3015-16赛季CBA联赛之佛山
日期:2016-01-18 08:59:06shanzhi
日期:2016-06-17 17:59:3115-16赛季CBA联赛之同曦
日期:2016-11-03 14:43:552015七夕节徽章
日期:2015-08-21 11:06:17丑牛
日期:2014-12-30 16:06:17
123 [报告]
发表于 2014-10-28 14:40 |只看该作者
好活动,看到好多爱学习的筒子们  {:3_196:}

论坛徽章:
0
124 [报告]
发表于 2014-10-28 21:42 |只看该作者
第九课快看完了,阿铭介绍的是文件包的压缩与解压缩。有好几种命令,特别是linux不支持rar压缩。因为没有具体实践,感觉没什么收获。可能看太快了,可能要停一下,多点实践。电子教程也看到22课了,后面的都是具体的操作。

论坛徽章:
0
125 [报告]
发表于 2014-10-28 22:29 |只看该作者
作为一个而立之年的单身男屌丝,现在也不得不为了女人的事耽误一点学习时间,因此学习进度稍有耽搁。
最近在学习正则表达式相关内容. 正则表达式的强大,加上VIM和egrep等工具配合,实现一些查找替换等工作,简直是手到擒来。
看了《精通正则表达式》的前三章,书中内容主要是用Perl来讲解正则表达式的使用,而我学习正则表达式的目的就是配合vim和egrep来提高日常工作的效率。书中也提到正则表达式分很多流派,也就是说正则表达式在各种语言和工具中表达方式不尽相同,因此我打算在了解正则表达的一些基础知识后便停止进一步的学习,把工作重点转移到linux编程上来。
下面我来总结一下正则表达式在VIM中的使用。
1. 搜索命令 (:help pattern-searches)
        /{pattern}[/]<CR>        搜索光标后面的第[count]个{pattern}
        /{pattern}/{offset}<CR> 搜索光标后面的第[count]个{pattern},并跳到{pattern}所在位置的offset处。
        其中{offset}取值:
                [num]        向下num行
                +[num]        向下num行
                -[num]        向上num行
                e[+num]        匹配结果的结尾的右边第num个字符
                e[-num]        匹配结果的结尾的左边第num个字符
                s[+num] / b[+num]        匹配结果的开头的右边的第num个字符
                s[-num] / b[-num]        匹配结果的开头的左边的第num个字符
                ;/{pattern} 执行另一个搜索,例如/the/;/word<CR>:先找到一个the,然后再搜索word。

        /<CR>        正向查找最后一次使用的{pattern}的第[count]个匹配(并使用上次的offset)
        //{offset}<CR>  执行最后一次查找,但使用新的offset值
以上几个命令的/替换为?即可实现反向查找功能。
其他命令:
        n        执行最后一次查找
        N        反向执行最后一次查找
        *        正向查找光标下的单词
        #        反向查找光标下的单词
        g*        正向查找光标下的单词,非整个单词匹配,也匹配单词的一部分。
        g#        反向查找光标下的单词,非整个单词匹配,也匹配单词的一部分。
        gd        跳到局部变量的声明处 (定位并不十分准确)
        gD        跳到全局变量的声明处 (定位并不十分准确)
执行查找命令后,如果使用了hlsearch选项,则搜索结果会被高亮,如果想清除搜索结果,则输入:let @/=""
在指定范围内搜索,如,在50-100行之间搜索word,则输入/%>50l%<100lword

2. 正则表达式(VIM中称之为模式)
搜索有几种模式:magic(\m), nomagic(\M), very magic(\v), very nomaigc(\V)
very magic模式下,除了0-9,A-Z,a-z,_以外的所有字符都具有特殊意义。这样pattern将显得非常清晰,可读性好,与Perl,Python的正则表达式更为接近。在搜索的起始位置加入\v开关开启very magic模式。以下内容仅适用于very magic模式。
very nomgic模式下,除了\外,都不具有特殊意义。所以在原意匹配的时候,用\V开关最方便!

VIM下元字符的修饰符
*        0或者更多
+        1或者更多
=        0或者1
?        0或者1, 与=相同,但不能用于?的向后查找
{n,m}        n到m
{n}                n
{n,}        至少n
{,m}        0到m
{}                0或者更多, 与*相同
{-n,m}  n到m,尽可能少的匹配.
{-n}        匹配n次。
{-n,}        匹配至少n次,尽可能少的匹配.
{-,m}        0到m,尽可能少的匹配.
{-}                0或者更多,尽可能少的匹配.
------------------------------------------------------------------------
VIM下的元字符
^        行首(zero-width)
\_^ 行首(zero-width)
$        行尾(zero-width)
\_$        行尾(zero-width)
.        除了换行符的其他任意字符
\_.        任意一个字符,包括换行符
<        一个单词的开始(zero-width)
>        一个单词的结束(zero-width)
\zs        设置匹配的开始
\se        设置匹配的结束
%^        文件的开始(zero-width)
%$        文件的结束(zero-width)
%V        在选择的区域内进行匹配(可视模式下)(zero-width)
%#        匹配光标所在的位置        (zero-width)
%'m        匹配标记m所在位置(zero-width)
%<'m        匹配标记m之前的内容(不适用于very magic模式,其他模式下\%<'m)
%>'m        匹配标记m之后的内容(不适用于very magic模式,其他模式下\%>'m)       
        (关于标记, 使用m{letter}命令在当前光标位置创建一个标记,然后可以使用`{letter}命令回到这个位置,其中letter是小写字母代表局部标记,大写字母代表全局标记)
%23l        在第23行内进行匹配。(zero-width)
%>23l        在第23行以后进行匹配。(zero-width)
%<23l        在第23行以前进行匹配。(zero-width)
%23c        在第23列进行匹配。
%>23c        在第23列之后进行匹配。       
%<23c        在第23列之前进行匹配。       
%23v        Matches in a specific virtual column.
%<23v        Matches before a specific virtual column.
%>23v        Matches after a specific virtual column.       

字符类:
\i        标识符字符, (isident)
\I        与\i类似, 但不包括数字
\k        keyword 字符(iskeyword)
\K        与\k类似, 但不包含数字
\f        文件名字符,(isfname)
\F        与\f类似,但不包括数字
\p        可打印字符,(isprint)
\P        与\p类似,但是不包含数字
\s        空白字符(<Space> and <Tab>
\S        非空白字符,与\s相对
\d        数字[0-9]
\D        非数字[^0-9]
\x        十六进制数字[0-9A-Fa-f]
\X        非十六进制数字[^0-9A-Fa-f]
\o  八进制数字 [0-7]
\O        非八进制数字[^0-7]
\w        word字符 [0-9A-Za-z_]
\W        非word字符[^0-9A-Za-z_]
\h        head of word字符 [A-Za-z_]
\H        非head of word字符 [^A-Za-z_]
\a        英文字母 [A-Za-z]
\A        非英文字母[^A-Za-z]
\l        小写字母 [a-z]
\L        非小写字母 [^a-z]
\u        大写字母[A-Z]
\U        非大写字母[^A-Z]
\_x        其中x可为以上任一字符,表示包括换行符的集合

\e        <ESC>
\t        <Tab>
\r        <CR>
\b        <BS>
\n        换行符
~        上一个substitute使用的替换字符串
()        把括号内的内容封装为一个atom, 并把匹配的值保存在参数变量中\1到\9中,参数的顺序按照左括号出现的顺序。
%()        作用同(),但是不把括号内的模式保存为参数,这样可以提高匹配的效率。
\1 - \9        表示用圆括号匹配的参数变量
[]        匹配方括号中的任意一个字符
%[]        一系列可选的匹配字符串
        例如:/\vfu%[nction] 可以匹配:fu, func, function.

%d        匹配指定的十进制表示的字符,例如%d48 == '0'
%x        匹配指定的十六进制表示的字符
%o        匹配指定的八进制表示的字符
%u        匹配指定的多字节字符        %u1234
%U        匹配指定的长多字节字符        %U12345678

#以下几个特殊字符实在用语言表达不太清楚...
@=        用0宽度匹配之前的元字符(Perl: (?=pattern)).
@!        如果右边不能匹配@!之前的元字符,则匹配0个宽度,(Perl?!pattern)).
        如: /\vfoo(bar)@! 匹配后面不是bar的foo
@<= 类似Perl中的(?<=pattern)
@<! 类似Perl中的(?<!pattern)
@>        类似Perl中的(?>pattern)

----------------------应用---------------------------
例如有文本:abcdefb
.{-1,}b 匹配:ab和cdefb
.{1,}b 匹配:abcdefb

在指定范围内进行匹配(可指定行与列的范围):
例如在第23行到第50行之间查找word,则/\v%>22l%<51lword

查找两个连续的单词,使用参数变量功能
/\v<(\w+)\s*\1>

匹配位置(不匹配任何字符,只匹配一个位置):
(1)        匹配行首 /\v^/
        然后执行 :10,20 s//#/g 即可在第10-20行的行首添加‘#’
(2) 我在工作中经常遇到这样的问题,需要在11223344556677889900AABBCCDDEEFF这样的一串十六进制数中,按两个一组在前面插入\x以组成C语言中的字符串。可以先这样做,匹配每组(两个字节)之间的位置,然后替换为\x。
        写出查找模式:/\v\ze(\x\x)+>/
        进行替换::%s//\\x/g
        替换后的结果:\x11\x22\x33\x44\x55\x66\x77\x88\x99\x00\xAA\xBB\xCC\xDD\xEE\xFF
(3) 匹配特定上下文的字符串:
        例如有两行文本如下:
                1. this text have two line.
                2. one two three
        如果想只想匹配第二行中的two,则可使用/\vone\s*\zstwo\zethree/ (首先要匹配整个表达式,然后实际匹配的内容为\zs开始到\ze结束的部分,如果只指定\zs,则匹配\zs到结束的部分,只指定\ze与之类似)
        或者使用/\v(one\s*)@<=two(\s*three)@=/ (匹配的two的条件是:two的左边要有个one\s*,右边有个\s*three)

论坛徽章:
0
126 [报告]
发表于 2014-10-29 21:43 |只看该作者
卡住了,不知道如何进展。今天没有看视频,也没有看教程。想消化消化。百度linux文件和目录,有个:请问linux的文件目录结构。挺详细,看了有收获。免得以后不知道文件哪里找。看来要背下这个结构。偷懒,复制下内容:
/usr/local  是存放你新装的软件的目录。
/bin  目录用于存放普通用户可执行的命令,系统中的任何用户都可以执行该目录中的命令
/boot 目录用于存放linux操作系统启动时所需使用的文件,为了系统能够启动,通常该目录需要使用独立的分区,这样boot分区和根分区相互独立可以保证启动文件更加安全可靠。
/mnt  目录中的子目录用于作为系统中可移动存储设备的挂载点。如光驱。
/root 目录是超级用户root的宿主目录,可见超级用户在系统中与普通用户有很大差异。
/sbin  (以下目录都是在/sbin这个目录下)
/tmp 为系统临时目录,很多命令程序在该目录中存放临时使用的文件。
/usr 目录用于存放大量的系统应用程序及相关文件。如说明文档、库文件等。
/var  目录用于存放系统中经常变化的文件,如日志文件,用户邮件等。
/dev 目录用于存放系统中的所有设备文件,如光盘驱动器、硬盘等。
/etc  目录用于存放系统中的配置文件,linux 中的配置文件都是文本文件,可以使用相应的命令查看。
/home  目录用于存放系统中普通用户的宿主目录,每个用户在该目录下都有一个与用户同名的目录

论坛徽章:
0
127 [报告]
发表于 2014-10-30 22:09 |只看该作者
第九课重复看,文件和目录结构又看了一遍。要熟了先。

论坛徽章:
19
处女座
日期:2014-07-18 14:50:5415-16赛季CBA联赛之北京
日期:2019-09-16 15:39:1415-16赛季CBA联赛之上海
日期:2019-09-15 15:29:0415-16赛季CBA联赛之山西
日期:2017-03-09 10:58:232017金鸡报晓
日期:2017-02-08 10:33:212017金鸡报晓
日期:2017-01-10 15:13:2915-16赛季CBA联赛之深圳
日期:2016-12-15 17:55:53C
日期:2016-10-25 16:00:1515-16赛季CBA联赛之新疆
日期:2016-07-21 14:02:0415-16赛季CBA联赛之江苏
日期:2016-06-30 12:15:04shanzhi
日期:2016-06-17 17:59:31平安夜徽章
日期:2015-12-26 00:06:30
128 [报告]
发表于 2014-10-30 23:49 来自手机 |只看该作者
第一章余下部分上周末已经完成,对shell文件重定向,shell数学运算有了一定的掌握。重新审视了学习方法,为了提高效率,学习一章后完成一个大的实验,囊括一章中的大部分知识点。

论坛徽章:
5
NBA常规赛纪念章
日期:2015-05-04 22:32:03操作系统版块每日发帖之星
日期:2015-11-09 06:20:00操作系统版块每日发帖之星
日期:2015-11-10 06:20:00数据库技术版块每日发帖之星
日期:2016-01-14 06:20:00IT运维版块每日发帖之星
日期:2016-01-16 06:20:00
129 [报告]
发表于 2014-10-31 12:01 |只看该作者
多多實驗才是正確的.

论坛徽章:
0
130 [报告]
发表于 2014-10-31 21:36 |只看该作者
今天看完了视频第十课,yum包及相关命令。wget可以下载,yum install 带上合适的参数也可以下载和自动安装。还有echo $?,专门查询刚刚执行的命令是否正确执行了。
这课讲完了,阿铭说后面shell好了就是具体操作实例,基础部分基本介绍完毕了。我安装了一个默认系统,一个basic系统。一直琢磨如何在简单系统上顺畅的使用yum和rpm命令。自动安装一个包,并且还会自己安装其依赖的包,看起来有点神奇哦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP