免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
101 [报告]
发表于 2014-10-19 11:53 |只看该作者
本帖最后由 lcofjp 于 2014-10-19 12:07 编辑

最近在学Vim实用技巧一书,整理了一份笔记。
《Vim实用技巧》一书确实是一本好书,让我从对vim的生疏不喜欢用转为对vim的着迷并有相见恨晚的感觉。vim功能强大的让人受不鸟,我觉得掌握vim的5成功力便能称为武林中的高手了,自测我目前掌握的有2成功力就已经很得心应手了!!vim的知识像是个无底洞,要想到熟练和精通的火候,我估计没个一年半载的修炼很难达到。所以就目前可以应付大多数编辑任务的情况下,我打算开始往下一步进行,学习一些重点有难度的命令,egrep以及正则表达式等。vim的学习也会在日常应用中进一步加深!
以后的学习路线打算是:正则表达式->GNU 编译器的使用(GCC,GDB,makefile)->linux/unix编程->linux内核学习。
——————————————————————————————————————————————————————————————————————————————
vi编辑器学习笔记
每个模式的所有命令列表,请参见:h index
说明:形如<C-a>这样的标记代表CTRL+a
1. 普通模式下操作:操作符+动作命令=操作(:help operator)(查看所有命令列表:help normal-index)
   #每个命令前均可指定一个数字[count], 不指定[count]的话,[count]默认值为1.
   ["x]c{motion} 删除{motion}指定的文本[到寄存器x中]并进入插入模式. (cc 删除[count]行[到寄存器x中]并进入插入模式)(change)
   ["x]C 删除光标到行尾的内容以及下面的[count-1]行[到寄存器x中],并进入插入模式.(C=c$)
   ["x]d{motion} [执行count次]删除{motion}指定的文本[到寄存器x中].(dd 删除[count]行[到寄存器x中])(delete)
   ["x]D 删除光标到行尾的内容[到寄存器x中]. (D=d$)
   ["x]y{motion} Yank {motion} text [into register x]. (yy Yank [count] lines [into register x]).
   ["x]Y 复制光标处到行尾的文本以及下面的[count-1]行[到寄存器x中]. (Y=y$)
   ["x]s 删除[count]个字符[到寄存器x中]并进入插入模式(s stands for Substitute). (s=cl)
   ["x]S 删除[count]行并进入插入模式.(S=cc)
   ["x]x 删除光标下以及后面的[count]个字符[到寄存器x中]. (x=dl) (xp 可实现两个字符的位置交换)
   ["x]X 删除光标前面的[count]个字符[到寄存器x中]. (X=dh)
   ["x]p 粘贴[寄存器x中的]文本到光标后面[count]次.(put)
   ["x]P 粘贴[寄存器x中的]文本到光标前面[count]次.
   r{char} 用{char}字符替换光标所在处的字符,如果指定[count]的话,则用{char}替换光标及其后面[count-1]个字符.(replace)
   g~{motion} 反转{motion}指定文本的大小写. (g~~或g~g~,反转当前行文本的大小写)
   gu{motion} 使{motion}指定的文本转为小写. (guu或gugu,使当前行的文本变为小写)
   gU{motion} 使{motion}指定的文本转为大写. (guu或gugu,使当前行的文本变为大写)
   >{motion} 对{motion}区域增加缩进(shiftwidth指定的单位). (>>对[count]行增加缩进)
   <{motion} 对{motion}区域减少缩进(shiftwidth指定的单位). (>>对[count]行减少缩进)
   ={motion} 对{motion}区域自动缩进. (==对[count]行进行自动缩进)
2. 普通模式下的其他操作:
   J 连接[count]行成为1行(删除行尾的换行符)
   R 进入改写模式. 直到按ESC退出replace模式,输入的内容会被重复[count]次.
   u 撤销[count]次改变(undo)
   U 撤销对本行的修改
   <C-r> 重做(redo) (与u相对)
   . 重复上一次操作,如插入、删除、修改操作。
   #数字运算操作,适用与整数,如果是小数的话,会当做两个整数处理。
   <C-a> 如果不指定[count],则对光标处(或者光标后面第一个)数字+1,否则+count
   <C-x> 如果不指定[count],则对光标处(或者光标后面第一个)数字-1,否则-count
   {num}<Enter> 光标下移num行
3. {motion}:普通模式下移动光标命令
   h,j,k,l 左,下,上,右(实际行)
   gh, gj, gk, gl 左下上右 (屏幕行)
   0, ^, $ 行首,第一个非空白字符, 行尾(实际行)
   g0, g^, g$ 行首,第一个非空白字符,行尾(屏幕行)
   w 向前(右)移动一词(计标点),W 向前移动一词(不计标点)
   b 向后(左)移动一词(计标点),B 向后移动一词(不计标点)
   e 移到(下一个)单词的结尾, E 移到(下一个)串的结尾
   ge 移到(上一个)单词的结尾,gE 移到(上一个)串的结尾
   t{char} 向右查找直到遇到{char}字符前停下(不包含{char}字符)
   T{char} 向左查找直到遇到{char}字符前停下(不包含{char}字符)
   f{char} 从光标处开始向行尾查找{char}字符(在选择时包括char字符)
   F{char} 从光标前开始向行首查找{char}字符(在选择时包括char字符)
   ; 重复上次的字符查找命令(f/F命令)
   , 反向查找上次的字符查找命令(f/F命令)。
   % 跳到匹配的括号处
   * 查找光标下的单词,并跳到下一个匹配处,可按n或者N进行重复查找。
   H 把光标移至编辑窗口顶部第一行的第一个非空白字符位置
   M 把光标移至编辑窗口中间一行的第一个非空白字符位置
   L 把光标移至编辑窗口底部最后一行的第一个非空白字符位置。
   ( 把光标移至一个完整句子的句首位置
   ) 把光标移至一个完整句子的句尾位置
   { 把光标移至一个完整段落的段首位置
   } 把光标移至一个完整段落的段尾位置
   + 到下一行首字符
   - 到上一行首字符
   /正向查找,?反向查找,n查找下一个匹配,N查找上一个匹配。
4. {motion}:文本对象(:help objects)
   i“, i), i}, i], i’, i>, i` 括号或者引号内部的对象(不好含括号或者引号)
   a”, a), a}…                      包括括号或者引号的对象
   it, at, XML标签对象
   iw, iW, is, ip 单词、字串、句子、段落对象
   aw, aW, as, ap i对应对象及一个空格(空行)
5. 插入文本的常用方法(进入插入模式)(在结束插入时,插入的内容将重复[count]次)
    a 在光标后面插入文本.
    A 在当前行的尾部添加文本
    i 在光标处插入文本.(如果想插入50个'-',则可以输入50i-<ESC>
    I 在行首插入文本
    o 在光标所在行的下面新建一行,等待输入文本
    O 在光标所在行的上面新建一行,等待输入文本
6. 插入模式:(:help Insert) (:help insert-index)
   <C-h> 删除前一个字符(同backspace)
   <C-w> 删除前一个单词
   <C-u> 删至行首
   以上命令,在Bash shell中或者Ex命令模式下也可以使用.
   —————
   <Esc> 或 <C-[> 返回到普通模式
   <C-o> 切换到插入-普通模式; 切换到此模式后,执行一条普通模式指令后,便再次返回到插入模式
   —————
   <C-r>{0-9a-z"%#*+:.-=} 把寄存器的内容粘贴到当前位置。
   <C-r><C-p>{register} 按原意插入寄存器内的文本,并修正不必要的缩进。
   <C-v>{code} 其中code为3位十进制数字,如<C-v>065输入A字符
   <C-v>u{1234} 其中u后面跟4位16进制数字,用来输入unicode码
   <C-v>{nondigit} 后面跟非数字字符,则按原意插入该字符
   <C-k>{char1}{char2} 插入以二合字母{char1}{char2}表示的字符
   <C-e> 插入光标下面(下一行)的字符
   <C-y> 插入光标上面(上一行)的字符

7. 常用Ex命令(获取Ex命令列表:help ex-cmd-index,获取某个命令的帮助,如:help :delete)
   #在Ex模式下,可以用<C-w>,<C-u>来删除,可以用<C-v>,<C-k>来输入,也可以用<C-r>{register}粘贴寄存中的内容
   #range范围中的特殊字符:.当前行, $最后一行, %所有行(=1,$), '<,'>代表高亮选取, 0位于文件第一行上方
   #range可以是一个数字代表一行,如1,也可以是一个范围,如 2,8 代表2到8行,可以使用特殊符号和偏移,例如.,.+4代表当前行以及下面4行。还可以使用模式指定地址范围。
   #重复上次的Ex命令@:
   #在Ex模式下,<Tab>可以补全命令,也可以输入<C-d>显示可用的补全列表
   #<C-w>输入光标下单词,<C-a>输入光标下的字串
   :reg[isters] 显示寄存器的内容
   :{num} 跳到第num行
   :[range]d[elete] [x] 删除指定范围内的行[到寄存器x中]
   :[range]y[ank] [x] 复制指定范围的行[到寄存器x中]
   :[line]pu[t] [x] 在指定行后粘贴寄存器x中的内容
   :[range]co[py] {address} 把指定范围内的行拷贝到{address}所指定的行之下(可以简写为:t)
   :[range]m[ove] {address} 把指定范围内的行移动到{address}所指定的行之下
   :[range]j[oin] 连接指定范围内的行
   :[range]norm[al] {commands} 对指定范围内的每一行执行普通模式命令{commands}
   :[range]s[ubstitute]/{pattern}/{string}/[flags] 把指定范围内出现{pattern}的地方替换为{string}
   :[range]g[lobal]/{pattern}/[cmd] 对指定范围内匹配{pattern}的所有行,在其上执行Ex命令{cmd}, (default cmd is ":p"

8. 寄存器(:help registers)
   #共有9类寄存器,包括
   (1)"" 无名寄存器(类似于最后一个使用过的寄存器),d,c,s,x,y等命令都会使用无名寄存器,即使指定了其他寄存器("_除外)。
   (2)"0-"9 10个数字命名寄存器
        "0 每次一执行y命令,总是会保存内容到寄存器0,无论是否指定其他寄存器。
          "1 除了指定其他寄存器或者删除修改的内容小于一行外,d和c命令将复制内容到寄存器1。(但是d与%()`/?nN{}组合除外).
        "2-"9 每一次发生删除或者修改动作,寄存器的内容就会发生移位,寄存器1的内容到寄存器2中,寄存器2的内容到寄存器3中,以此类推。       
   (3)"- the small delete register (delete命令操作小于一行时如果未指定其他寄存器,则会保存到此寄存器)
   (4)"a-"z和"A-"Z 26个字母命名的寄存器。仅在指定这些寄存器的时候才会使用,使用小写字母寄存器会覆盖原有内容,大写字母寄存器会附加到原有内容后面。
   (5)":, "., "%, "# 4个只读寄存器
        ": 上次执行的Ex命令
        ". 最后插入的文本
        "% 当前文件的文件名
        "# contains the name of the alternate file.
   (6)"= 表达式寄存器,可再后面输入表达式,将会插入表达式的结果.
   (7)"*, "+, "~ Selection and drop registers (本人测试mac下无,也可能是方法不对)
           "* X11主剪切板,用鼠标中键操作
           "+ X11主剪切板,用剪切、复制与粘贴命令操作
   ("_ 黑洞寄存器,使用这个寄存器可以实现删除内容但不影响任何寄存器。
   (9)"/ 上次的搜索模式

9. 可视模式:在可视模式下,可通过{motion}移动光标进行选择。
   v 面向字符的可视模式
   V 面向行的可视模式
   <C-v> 面向块的可视模式
   gv 重选上次的高亮区域
   <ESC> 或者 <C-[> 退出可视模式到普通模式
   o 切换高亮选区的活动端。

10. 滚屏操作(:help scrolling)
   zz 把当前行显示在窗口正中
   <C-f> 向下移动一屏 [PageDown]
   <C-b> 向上移动一屏 [PageUp]
   <C-d> 向下移动半屏
   <C-u> 向上移动半屏
   <C-e> 下移[count]行
   <C-y> 上移[count]行
   

评分

参与人数 1可用积分 +12 收起 理由
send_linux + 12 很给力!

查看全部评分

论坛徽章:
0
102 [报告]
发表于 2014-10-19 21:14 |只看该作者
今晚看到教程 第15章,shell 脚本,基本是程序设计,思路好理解,主要是命令和格式不是马上能记住。阿铭给了好多例子,通俗易懂。
早上动手安装虚拟机linux系统,想像阿铭那样装个最小内核的,结果不知道是我电脑原因还是虚拟机问题(我用的是win7,vmware10.0),总之就是直接安装完全版,920个包,花了大量时间。就是没找到自定义选项。郁闷

论坛徽章:
0
103 [报告]
发表于 2014-10-20 09:34 |只看该作者
本帖最后由 jialiangm 于 2014-10-20 09:35 编辑
jialiangm 发表于 2014-10-13 09:41
目前的学习进度:
第一周,已将本书的1至5章看完。内容相对简单基础,前四章主要是一些python的基础数 ...

{:3_183:} 上周为了迎接政府检察,连续加了一个星期班~~~~学习进度放缓~~~
先把最近整理的笔记发下{:2_172:}


序列中,列表可以修改,元组不可以修改

一、通用的序列操作

1.索引

0开始代表第一个元素,从最后开始时,最后一个用-1表示。
>>> g = 'hello'
>>>g[0]            >>>g[-1]
'h'                      'o'

如果调用返回值时
>>>g=input('yyy: ')[3]
yyy: 2005
>>>g
'5'

2.分片

第1个索引是要提取的第一个元素的编号,最后的索引是分片之后剩余部分的第一个元素的编号。

>>>n = [1,2,3,4,5,6,7,8,9,10]
>>>n[3:6]
[4,5,6]

>>>n[7:10]              >>>n[-3:]              >>>n[:3]                              >>>n[:]
[8,9,10]                     [8,9,10]                    [1,2,3]                                   [1,2,3,4,5,6,7,8,9,10]

步长

>>>n[0:10:2]           >>>n[3:6:3]         >>>n[8:3:-1]        >>>n[0:10:-2]          >>>n[5::-2]          >>>n[:5:-2]
[1,3,5,7,9]                  [4]                        [9,8,7,6,5]              []                              [6,4,2]                     [10,8]

对于一个正数步长,Python会从序列的头部开始向右提取元素,直到最后一个元素;而对于负数步长,则是从序列的尾部开始向左提取元素,直到第一个元素。

3.序列相加、相乘
>>>[1,2,3] + [4,5,6]           >>>'Hello,' + 'world!'            >>>[1,2,3] + 'hello'                        >>>[42]*5
[1,2,3,4,5,6]                         'Hello, world!'                          报错(列表和字符串无法连接)           [42,42,42,42,42]

>>>e = [None]  表示空值

4.成员资格 in

>>>pppp = 'rw'
>>>'w' in pppp                  >>>'x' in pppp
True                                    False

5.长度、最小值和最大值   len   min  max

>>>numbers = [100,34,678]
>>>len(numbers)              >>>min(numbers)          >>>max(numbers)
3                                          34                                    678

二、列表  【1,2,3,4】

1.list函数

>>>list('Hello')
['H','e','l','l','o']

2.基本的列表操作

(1)改变列表:元素赋值                    (2)删除元素                     (3)分片赋值                (4)插入新元素
>>>x = [1,4,5]
>>>x[1] = 2                                    >>>del x[2]                     >>> x[1:]=[7,8]       >>>x[1:1]=[2,3]
>>>x                                               >>>x                                >>>x                        >>>x
[1,2,5]                                              [1,4]                                  [1,7,8]                       [1,2,3,4,5]

3.列表方法

(1)append 用于在列表末尾追加新的对象。
>>> x = [1,2,3]
>>>x.append(4)
>>>x
[1,2,3,4]

(2)count 用于统计某个元素在列表中出现的次数。
>>>x = [1,1,2,2,2]
>>>x.count(2)
3

(3)extend 用新列表扩展现有的列表。
>>>a = [1,2]
>>>b = [3,4]
>>>a.extend(b)
>>>a
[1,2,3,4]

(4)index 用于找出某个值在列表中第一次出现的索引位置。
>>>xxx = ['we','who','what','where']
>>>xxx.index('what')
2

论坛徽章:
13
午马
日期:2015-01-19 14:08:552017金鸡报晓
日期:2017-01-10 15:13:29黑曼巴
日期:2016-11-07 11:24:56PHP
日期:2016-10-25 16:06:46黄金圣斗士
日期:2015-11-24 10:43:13IT运维版块每日发帖之星
日期:2015-09-25 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:002015亚冠之阿尔纳斯尔
日期:2015-07-27 11:17:582015亚冠之广州恒大
日期:2015-07-24 15:04:162015年亚洲杯之乌兹别克斯坦
日期:2015-04-01 13:28:012015年辞旧岁徽章
日期:2015-03-03 16:54:15处女座
日期:2015-01-22 16:09:16
104 [报告]
发表于 2014-10-20 16:13 |只看该作者
最近事情多,计划又赶不上变化了

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
105 [报告]
发表于 2014-10-20 18:32 |只看该作者
wsysx 发表于 2014-10-20 16:13
最近事情多,计划又赶不上变化了


这些都是借口啊,呵呵,制定好的计划,不能按时完成啊

论坛徽章:
0
106 [报告]
发表于 2014-10-20 20:55 |只看该作者
经过几个小时的奋战,vmware10里面的CENTOS6.5最小安装基本搞定,至少可以和阿铭老师的教程对上号了。安装了5次系统,删除了4个,看到了默认安装的920个包,基本服务安装的620个包,到现在的mini 安装,选择中文支持,TEX和basic三个选项,528个包;只是我的电脑花了20多分钟,远没有阿铭老师的8分钟速度啊。
接下来的,就是跟rmp、grep、yum亲密接触了,万里长征第一步开走了。

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
107 [报告]
发表于 2014-10-20 21:42 |只看该作者
eagerly1 发表于 2014-10-20 20:55
经过几个小时的奋战,vmware10里面的CENTOS6.5最小安装基本搞定,至少可以和阿铭老师的教程对上号了。安装了 ...


加油,呵呵

论坛徽章:
0
108 [报告]
发表于 2014-10-21 21:24 |只看该作者
今天早上看了一会教程,想找到解决网络问题的办法。(我的电脑是自动IP,也使用了dhclient命令,service network start,还restart了。)可是ping 不通www.163.com,没有浏览器,也没底能不能上网。晚上回来看了1个小时多的视频第五课,关于文档和目录的命令。阿铭讲的很仔细,例子也典型,容易记住。lsattr是个不常用又很重要的命令,-R 是关于级联的参数,或者说是递归。有时间要实践操作才可以加深理解。
谢谢  send_linux 的鼓励

论坛徽章:
0
109 [报告]
发表于 2014-10-22 08:14 |只看该作者
回复 108# eagerly1


    看完你说的,我也想买本阿铭来看下了{:2_172:}

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
110 [报告]
发表于 2014-10-22 17:08 |只看该作者
赶着看完了《第2篇  Linux 主机与网络安全措施》。
比较切合实际工作的就是系统日志的查看和防火墙的配置,系统的看一遍对于之前只言片语的学的点点滴滴起到了整合和梳理的功能,也对于没有用的就没去学的知识点有了一些印象,以便以后有用到的时候能想得到还有这么一个知识点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP