第四章简要

1、grep命令

选项说明:
--color=auto:对匹配到的文本着色显示;
-v:显示不被模式匹配到的行;
-i:忽略字符大小写;
-n:显示匹配的行号;
-c:统计匹配到的字符串;
-o:仅显示匹配到的字符串;
-q:静默模式,不输出任何信息;
-A #:表示显示匹配到的行并显示该行后#行,#表示为数字;
-B #:表示显示匹配到的行并显示该行前#行,#表示为数字;
-C #:表示显示匹配到的行并显示该行前后各#行,#表示为数字;
-e:实现多个选项的逻辑or或更新;
-w:匹配整个单词;
-E:使用ERE扩展正则,等效于egrep命令;
-F:相当于fgrep,不使用正则表达式;
【例1】查找/etc?录下,所有包含conf字串的?件
[[email protected] ~]# ls -R /etc|grep conf
anthy-conf
asound.conf
autofs.conf
autofs_ldap_auth.conf
【例2】显?/root/passwd?件中包含root字串所在的?并显??号
[[email protected] ~]# grep root /root/passwd
1:root:x:0:0:root:/root:/bin/bash
11:operator:x:11:0:operator:/root:/sbin/nologin
【例3】显?passwd?件中,不包含bash字串的?,并显??号
[[email protected] ~]# grep -n -v bash passwd
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync
...
【例4】显?passwd?件中,包含root字串的?的总?数
[[email protected] ~]# grep -c root passwd
2
【例5】仅显?/root/passwd?件中的root字串及所在的?号
[[email protected] ~]# grep -on root passwd
1:root
1:root
1:root
11:root
【例6】显?/root/passwd?件中,包含root字串的?和其下2?的内容
[[email protected] ~]# grep -A 2 root passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologi
【例7】显?/root/passwd?件中,包含root字串的?和其上2?的内容
[[email protected] ~]# grep -B 2 root passwd
root:x:0:0:root:/root:/bin/bash

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
【例8】显?/root/passwd?件中,包含root字串的?和其上下各2?的内容
[[email protected] ~]# grep -C 2 root passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
【例9】扫描172.18.120.0/24?段,显?在线的ip地址
[[email protected] ~]# nmap -sP 172.18.120.0/24 | grep -B1 ‘Host is up‘| grep for | cut -d" " -f5
172.18.120.7
172.18.120.17
172.18.120.26
172.18.120.27
172.18.120.69
172.18.120.123
172.18.120.135
172.18.120.237
172.18.120.254
【例10】显?/root/passwd?件中,包含root字串或包含nologin字串的?
[[email protected] ~]# grep -e root -e nologin passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
或写成:
[[email protected] ~]# grep "root|bin" passwd
【例11】匹配root整个单词
[[email protected] ~]# echo -e "root\nrooter" |grep -w root
root
或写成:
[[email protected] ~]# echo -e "root\nrooter" |grep "\<root\>"
[[email protected] ~]# echo -e "root\nrooter" |grep "\broot\b"
2、正则表达式
分两类:基本正则表达式(BRE)和扩展正则表达式(ERE)。
元字符分类:字符匹配、匹配次数、位置锚定、分组。
程序支持:grep、sed、awk、vim、less、nginx、varnish等。
下面先介绍下基本正则表达式各元字符:
字符匹配:
.:匹配任意单个字符;
[]:匹配指定范围内的任意单个字符,例如[A-Z0-9]:表示匹配一个大写字符或数字;
[^]:匹配指定范围外的任意单个字符;
[:alnum:]:字母和数字;
[:alpha:]:代表任何英文大小写字符,亦即 A-Z, a-z;
[:lower:]:小写字母 [:upper:] 大写字母;
[:blank:]:空白字符(空格和制表符);
[:space:]:水平和垂直的空白字符(比[:blank:]包含的范围广);
[:cntrl:]:不可打印的控制字符(退格、删除、警铃...);
[:digit:]:十进制数字 [:xdigit:]十六进制数字;
[:graph:]:可打印的非空白字符;
[:print:]:可打印字符;
[:punct:]:标点符号。
注意:?件名通配符当中,表?0或多个任意字符,?表?任意?个单个字符。
匹配次数:?在要指定次数的字符后?,?于指定前?的字符要出现的次数
: 匹配前面的字符任意次,包括0次(贪婪模式:尽可能长的匹配);
. 任意长度的任意字符;
\? 匹配其前面的字符0或1次;
+ 匹配其前面的字符至少1次;
{n} 匹配前面的字符n次;
{m,n} 匹配前面的字符至少m次,至多n次;
{,n} 匹配前面的字符至多n次;
{n,} 匹配前面的字符至少n次。
位置锚定:定位出现的位置
^:行首锚定,用于模式的最左侧;
$:行尾锚定,用于模式的最右侧;
^PATTERN$:用于模式匹配整行;
^$:空行;
^[[:space:]]
$:空白行;
\< 或 \b:词首锚定,用于单词模式的左侧;
\> 或 \b:词尾锚定;用于单词模式的右侧;
\<PATTERN\>:匹配整个单词。
分组:
():将一个或多个字符捆绑在一起,当作一个整体进行处理,如: (root)+;
分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2, \3,
...
\1:表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符;
例如:
(string1+(string2))
\1:表示string1+(string2)

\2:表示string2
后向引用:引用前面的分组括号中的模式所匹配字符, 而非模式本身;
或者: |,例如:a|b: a或b C|cat: C或cat (C|c)at:Cat或cat。
再来介绍下egrep命令和扩展正则表达式:
egrep命令仅支持扩展正则表达式的文本过滤命令,等价于grep -E。
扩展正则表达式元字符:
字符匹配:
.:任意单个字符;
[]:指定范围的字符;
[^]:不在指定范围的字符。
次数匹配:区别基本正则表达式的是使?简洁,不需要使?转义符号(\)
:匹配前面字符出现任意次;
?:匹配前面出现字符0次或1次;
+:匹配前面出现字符1次或多次;
{m}:匹配前面出现字符n次;
{m,n}:匹配前面出现字符最少m次,最多n次。
位置锚定:
^:匹配行首;
$:匹配行尾;
\<,\b:匹配词首;
\>,\b:匹配词尾。
分组:
():生成分组模式;
后向应用:\1,\2,...
或者:
a|b:表示匹配a或b;
C|cat:表示匹配C或cat;
(C|c)at:表示匹配Cat或cat。
【例12】过滤出现0次或多次的字?a
[[email protected] ~]# echo abaacaaad | grep -o "a
"
a
aa
aaa
【例13】过滤出现0次或1次的字?a
[[email protected] ~]# echo abaacd|grep -o "a\?"
a
a
a
【例14】过滤出现1次或多次的字?a
[[email protected] ~]# echo zzzopabaacd|grep -o "a+"
a
aa
【例15】过滤出现2次字?a
[[email protected] ~]# echo abaacaaada|grep -o "a{2}"
aa
aa
【例16】过滤出现?少2次,最多4次的字?a
[[email protected] ~]# echo abaacaaada|grep -o "a{2,4}"
aa
aaa
【例17】过滤出现?少3次的字?a
[[email protected] ~]# echo abaacaaada|grep -o "a{3,}"
aaa
【例18】过滤出现最多2次的字?a
[[email protected] ~]# echo abaacaaada|grep -o "a{,2}"
a
aa
aa
a
a
【例19】过滤/root/passwd?件中,以root开头的?
[[email protected] ~]# grep "^root" passwd
root:x:0:0:root:/root:/bin/bash
【20】过滤/root/passwd?件中,以root结尾的?
[[email protected] ~]# echo "root:x:0:0:root:/root:/bin/root" >> passwd
[[email protected] ~]# grep "root$" passwd
root:x:0:0:root:/root:/bin/root
【21】过滤nginx.conf?件中,不显?空?和以空格开头0次或多次后跟#号的?,其余?都显?
[[email protected] ~]# grep -v "^$|^[[:space:]]#" /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
...
【例22】过滤ip命令输出的所有ip地址
[[email protected] ~]# ip a|grep -E -o "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"
127.0.0.1
172.18.121.79
172.18.255.255
1.1.1.1
1.1.1.255
...
注意:此种正则表达式没有完全考虑ip地址是否为可?的ip地址的情况,如要精确匹配合法可?ip地址,还需进?步编写正
则表达式匹配模式。
【例23】显?/proc/meminfo?件中以??s开头的?
[[email protected] ~]# grep "^s|^S" /proc/meminfo
SwapCached: 68972 kB
SwapTotal: 2097148 kB
SwapFree: 1688572 kB
Shmem: 2100 kB
Slab: 78072 kB
SReclaimable: 29616 kB
SUnreclaim: 48456 kB
此例可有多种解法:
[[email protected] ~]# grep "^(s|S)" /proc/meminfo
[[email protected] ~]# grep -i "^s" /proc/meminfo
[[email protected] ~]# grep "^[sS]" /proc/meminfo
[[email protected] ~]# grep -e ^s -e ^S /proc/meminfo
【例24】找出/etc/passwd?户名同shell名的?
[[email protected] ~]# grep "^(\<[[:alpha:]]+\>).
/\1$" /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
【例25】找出/etc/rc.d/init.d/functions?件中??为某单词(包括下划线)后?跟?个?括号的?
[[email protected] ~]# grep -o "^\<([[:alpha:]_])+\>()" /etc/rc.d/init.d/functions
checkpid()
__kill_pids_term_kill_checkpids()
...
【例26】将此字符串:welcome to magedu linux 中的每个字符去重并排序,重复次数多的排到前?
[[email protected] ~]# echo welcome to magedu linux|grep -o "."|sort|uniq -c|sort -nr
3 e
3
2 u
2 o
2 m
2 l
1 x
1 w
1 t
1 n
1 i
1 g
1 d
1 c
1 a
【例27】利?扩展正则表达式分别表?0-9、10-99、100-199、200-249、250-255
[[email protected] ~]# echo {0..9}|egrep -o "[0-9]"
0
...
9
[[email protected] ~]# echo {10..99}|egrep -o "[1-9]{1}[0-9]{1}"
10
...
99
[[email protected] ~]# echo {100..199}|egrep -o "1[0-9]{2}"
100
...
199
[[email protected] ~]# echo {200..249}|egrep -o "2[0-4]{1}[0-9]{1}"
200
...
249
[[email protected] ~]# echo {250..255}|egrep -o "25[0-5]{1}"
250
251
252
253
254
255
实验?:vi/vim编辑器
实验?的
熟练使用vim编辑器编辑文本文件。vim编辑器是vi编辑器的升级增强版本,使用操作上没区别。vim编辑器就如同
在windows系统上的office软件word程序一样,可以编辑、创建、添加、删除、撤销、取消撤销等文本文件的操
作,还更多高级使用方法。
前提准备
可用的centos7系统。
实验步骤 vim编辑器主要有3种模式:
命令模式(默认的模式)、插入模式、扩展命令模式
其它模式还有视图模式、替换模式等。
主要3种模式之间转换?法: 命令模式转换为插?模式:键?i、a、o键,??写均可。
插入模式转换为命令模式:按Esc键。
命令模式转换为扩展命令模式:输入入冒号,即键入Shif+:
扩展命令模式转换为命令模式:按Esc键。
其它模式:选择模式
1、命令模式 命令模式实现的功能有:移动光标、复制、剪切、撤销、重做,进?其他模式。
退出:
ZQ:强制退出不保存
ZZ:保存并退出
字符间跳转:
h:左
l:右
j:下
k:上
单词跳转:
w:下?个单词的词?
e:当前或下?个单词的词尾
b:当前或前?个单词的词?
#COMMAND:由#指定?次跳转的单词数,COMMAND可替换为w/e/b等命令
当前页跳转:
H:?页
M:中间?
L:页底
???尾跳转:
^:跳转???的第?个?空?字符
0:跳转???
$:跳转??尾
?间移动:
#G、扩展模式:#:跳转?由#指定
G:跳转?最后??
1G,gg:跳转?第??
段落间移动:
}:跳转?下?段
{:跳转?上?段
句间移动:
):跳转?下?句
(:跳转?上?句
翻屏操作:
Ctrl+f:向?件尾部翻?屏
Ctrl+b:向?件?部翻?屏
Ctrl+d:向?件尾部翻半屏
Ctrl+u:向?件?部翻半屏
字符编辑:
x:删除光标处的字符
#x:删除光标处起始的#个字符
xp:交换光标所在处的字符及其后?的字符的位置
~:转换??写
J:删除当前?后的换?符
替换命令:
r:替换光标所在处的字符
R:切换成替换模式
删除命令:
d:删除(也称剪切)命令,结合光标跳转字符,实现范围删除
d$:剪切光标所在位置到?尾
d^:剪切光标所在位置到?空??
d0:剪切光标所在位置到??,注意0是?个数字
dw:剪切?个单词,光标?下?个单词词?
de:删除?个单词,光标?词尾部
db:删除光标所在位置的前?个单词
#COMMAND:剪切#个COMMAND的操作,其中COMMAND表?以上任意命令,#表??个数?
dd:剪切光标所在的?
#dd:剪切光标所在?及以下#?,#是数?
D:从当前光标位置?直删除到?尾,留空?,等同于d$
p:在当前?的下??粘贴
P:在当前?的上??粘贴
复制命令:
y:复制,?为类似于d命令
y$:复制光标所在位置到?尾
y0:复制光标所在位置到??,注意0是?个数字
y^:复制光标所在位置到?空??
ye:复制?个单词,光标?词尾部
yw:复制?个单词,光标?下?个单词词?
yb:复制光标所在位置的前?个单词
#COMMAND:复制#个COMMAND的操作,其中COMMAND表?以上任意命令,#表??个数?
yy:复制光标所在的??
#y:复制光标所在及以下的#?
Y:复制整?
改变命令:
c:修改后切换成插?模式
c$:删除光标所在处??尾,并切换成插?模式
c^:删除光标所在处??空???,并切换成插?模式
c0:删除光标所在处???,并切换成插?模式
cb:删除光标所在位置的前?个单词,并切换成插?模式
ce:删除?个单词光标?词尾部,并切换成插?模式
cw:删除?个单词光标?下?个单词词?,并切换成插?模式
#COMMAND:删除#个COMMAND的操作,其中COMMAND表?以上任意命令,#表??个数?
cc:删除当前?并输?新内容,相当于S
#cc:删除当前?及以下#?并输?新内容
C:删除当前光标到?尾,并切换成插?模式
2、插?模式
插?模式实现编辑?本内容的功能。
i:光标在当前所在位置并进入插入模式。
I:大写字母i,光标跳转到行首并进入插入模式。
a:光标跳转到当前位置的后面一个字符并进入插入模式。
A:光标跳转到行尾并进入插入模式。
o:光标跳转到下一新行的行首并进入插入模式。
O:光标跳转到上一新行的行首并进入插入模式。
3、扩展命令模式 扩展命令模式能实现保存、退出、强制退出不保存、保存退出、执?扩展命令等。
退出:
:w:保存
:q:退出
:q!:强制退出不保存
:wq:保存并退出
:w!:强制保存,分3种情况:
root?户
?件的owner
当前?户对当前?件所在?录有wx权限时,实际会删除该?件再新建。
:x:保存并退出,等价于wq
回到命令模式:
Esc,Esc:连续单击2次
Esc:单击1次,等?会
Enter:单击
:r /PATH/FILENAME:读取?件内容,将内容输?到当前?本的最后。
:w /PATH/FILENAME:将当前?件内容写?另?个?件。
:!COMMAND:执?shell命令显?在当前,单击enter键继续编辑?本。
:r!COMMAND:执?shell命令并把结果复制到光标?的下??。
:.!COMMAND:执?shell命令并把结果复制到当前?,替换。
地址定界:
:start_pos,end_pos:定义起始位置和结尾位置之间的?
:#:具体第#?
:#,#:从左侧#表?起始?,到右侧#表?结尾?
:#,+#从左侧#表?起始?,加上右侧#表?的?数
:最后??
:.,$-1:当前?到倒数第??
:%:全?,相当于1,$
:/pat1/,/pat2/:从第?次被pat1模式匹配到的?开始,?直到第?次被pat2模式匹配到的?结束
:#,/pat/:从第#?到第?次被pat1模式匹配到的?结束
:/pat/,$:从第?次被pat1模式匹配到的?开始到?本结尾
地址定界使??式,后跟?个编辑命令
d:选择范围后剪切
y:选择范围后复制
w file:将范围内的?另存为?指定?件中
r file:在指定位置插?指定?件中的所有内容br/>查找:
:/PATTERN:从当前光标所在处向?件尾部查找
:?PATTERN:从当前光标所在处向?件?部查找
n:与命令同?向,光标?亮显?下?个查找的内容
N:与命令反?向,光标?亮显?下?个查找的内容
查找并替换:
:在扩展模式下完成查找替换查找
/要查找的内容/替换为的内容/修饰符
要查找的内容:可使?模式
替换为的内容:不能使?模式,但可以使?\1,\2,...等后向引?符号,还可使?&引?前?查找时查找
到的整个内容
修饰符:
i:忽略??写
g:全局替换,默认情况下,每??只替换第?次出现
gc:全局替换,每次替换前询问
查找替换中的分隔符(/),可替换为其它字符,例如:
[email protected]/[email protected]/[email protected]
s#/boot#/#i
撤销更改:
u:撤销最近的更改
#u:撤销之前的#次更改
U:撤销光标落在这?后所有的此?的更改
Ctrl+r:重做最后的撤销更改
.(点号):重复前?个操作
n.:重复前?个操作n次
【例1】vim打开/root/test1.txt?件,并在其内部把/etc/issue内容复制到?件尾部
[[email protected] ~]# vim /root/test1.txt
:r!cat /etc/issue
【例2】vim编辑/root/test1.txt?件并将其另存为/root/test1.bak?件#
[[email protected] ~]# vim /root/test1.txt
:w /root/test1.bak
结果查看:
[[email protected] ~]# cat test1.
test1.bak test1.txt
[[email protected] ~]# cat test1.bak
this is the class Python.
\S
Kernel \r on an \m
【例3】?vim编辑/root/test1.txt?件时,在其内部执?shell命令查看ip地址
[[email protected] ~]# vim /root/test1.txt
:! ifconfig
再按回车键,可正常编辑?本。
【例4】?vim编辑/root/test1.txt?件,并在其内把shell命令ifconfig ens33的执?结果复制在??
:r! ifconfig ens33
4、选择(也称可视化)模式
v:在命令模式中输?v进?选择模式,??向控制键选择字符范围,然后可使?命令模式中的命令进?剪贴、删除
等操作。
p:粘贴到光标所在处之后
P:粘贴到光标所在处之前
V:在命令模式中输??写字?V,进?多?选择模式。
p:粘贴到光标所在处下??
P:粘贴到光标所在处上??
注意:可视化键可?于与移动键结合使?,突出显?的?字可被删除、复制、变更、过滤、搜索、替换等。
【例5】选择模式中使?字符选择范围,选择?个mac地址
光标移动在0上,然后按v键,再按一下方向键选择多个字符
【例6】按?选择内容
光标移动到inet6所在的行的任意位置,然后按V键,再按一下方向键选择多行
5、多?件模式
vim FILE1 FILE2 FILE3 ...
:next:切换到下?个?件
:prev:切换到前?个?件
:first:切换到第?个?件
:last:切换到最后?个?件
:wall:保存所有?件
:qall:退出所有?件
:wqall:保存并退出所有?件
使?多个窗?显?多个?件:
vim -o|-O FILE1 FILE2 ...
-o:?平分割窗?
-O:垂直分割窗?
单个?件窗?分割:
Ctrl+w,s:?平分割窗?
Ctrl+w,v:垂直分割窗?
Ctrl+w,q:取消相邻窗?
Ctrl+w,o:取消全部窗?
:wqall:退出
在窗?间切换:Ctrl+w,上下?向键或Ctrl+w(连按2次w键)
【例7】同时打开两个?件,?平分割窗?
[[email protected] ~]# vim -o test1.bak test1.txt
【例8】单个?件,实现多窗?分割
[[email protected] ~]# vim test1.txt
按Ctrl+w,s:实现水平分割
6、定制vim特性
配置?件:永久有效
全局有效:/etc/vimrc
个?账户有效:~/.vimrc
扩展模式设置:当前vim进程有效
?号:
:set number,简写:set nu,表?显??号
:set nonumber,简写set nonu,表?取消?号
忽略字符??写:
:set ic:启?
:set noic:不忽略??写
?动缩进:
:set ai:启??动缩进
set noai:禁??动缩进
?亮搜索:
:set hlsearch:启?
:set nohlsearch:禁?
语法?亮:
syntax on:启?
syntax off:禁?
显?Tab和换?符^I和$显?:
set list:启?
set nolist:禁?
?件格式:
:set fileformat=doc:启?windows格式
set fileformat=unix:启?unix格式
设置?本宽度:
:set textwidth=65:设置?宽
:set wrapmargin=15:设置?边距
设置关闭所在?的标识线:
:set cursorline:简写cul:启?
:set no cursorline:禁?
注意:选项textwidth优先于wrapmargin。如果要使wrapmargin选项?效,必须将textwidth设置为0(这
也是默认值)。
:help option-list:查看帮助选项
注意:?vim编辑?件时,有时误操作会出现?成.swp?件,需要把该隐藏?件删除后,才可正常编辑。

第四章简要

原文地址:https://blog.51cto.com/14322554/2404637

时间: 2024-11-08 16:12:22

第四章简要的相关文章

【PMP】Head First PMP 学习笔记 第四章

第四章 项目整合管理 项目经理每天的工作 力保项目顺利进行 紧密监督以确保计划进行 计划本身不完善需要予以修正 即使是更大的项目的子项目,也要有收尾的过程 6个整合管理过程 整合管理划分为6个过程,项目经理必须掌握的核心职责. 1.制订项目章程 授权你展开工作的文档,通常由赞助人(为项目提供资金的人)交给你. 2.制订项目管理计划 项目管理计划涵盖了所有知识领域,很大一部分就是告诉你在出现问题时如何处理变更. 3.指导和管理项目执行 确保所有人都在做他们本该做的事,项目创建的产品和项目确实满足干

maven第四章背景案例

4.3简要设计 4.3.1接口设计 4.3.2模块结构 思想 先定义出核心接口,一个接口可以认为是一个功能,根据接口划分功能 设计模式就是一种思想,外观模式和代理模式,适配者模式三者的区别 http://blog.csdn.net/yhmhappy2006/article/details/7227017 http://blog.csdn.net/hguisu/article/details/7533759 http://www.cnblogs.com/wzh206/archive/2010/03

第四章 Hello,Shaders

第四章 Hello,Shaders 本章,会编写第一个shaders.介绍HLSL语法,FX文件格式,数据结构等等.学完本章,你就具备了深入学习图形编程的基础知识. Your First Shader 使用一种新的编程语言编写第一个程序时都会使用经典的编程例子"Hello,World!",程序输出就是一行文字"Hello,World!".我们遵守这一历史悠久的传统,编写第一个shader程序"Hello,Shaders!",但是这次的输出是一种固

Python基础教程(第十四章 网络编程)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5538341.html______ Created on Marlowes 本章将会给读者展示一些例子,这些例子会使用多种Python的方法编写一个将网络(比如因特网)作为重要组成部分的程序.Python是一个很强大的网络编程工具,这么说有很多原因,首先,Python内有很多针对常见网络协议的库,在库顶部可以获得抽象层,这样就可以

读《构建之法》第四章 、第十七章

第四章    两人合作 通过对于<构建之法>第四章的阅读使我对代码规范 . 代码复审 . 以及结对编程有了更加深刻的认识,所谓代码规范可以分为两个部分,代码风格规范和代码设计规范,代码风格规范的原则是:简明 . 易读 . 无二义性,代码书写的形式,变量命名的方法,注释程序如何工作都有详细的介绍,令我受益颇多.代码设计规范不光是程序书写的格式问题,而且牵涉到咸亨需设计 . 模块之间的联系 . 设计模式等方方面面,函数的设计,语句的使用,错误的处理,这些都是我们在进行程序设计的时候需要注意的地方.

第四章

第四章 源代码的下载和编译 1.下载.编译和测试Android源代码 配置Android源代码的下载环境 ①创建一个存放下载脚本文件(repo)的目录 # mkdir  ~/bin # PATH=~/bin:$PATH ②下载repo脚本文件 # curi http://dl-ssl.google.com/dl/googlesource/git-repo/repo > -/bin/repo # chmod a+x ~/bin/repo ③创建存放Android源代码的目录 # mkdir and

《UML精粹》 第四章 时序图

第四章 时序图 一般来说,我们会在一张时序图中画出某个情节的相关行为,图种会秀出这个使用案例(use case)里面可能出现的一些对象,以及在对象间传送的信息. 本章将通过一个简单情节,做时序图各方面的相关讨论.假设我们现在有一份订单,并且准备调用它的一个命令,算出这份订单的价格.为了达到这个目的,订单需要产看它里面所拥有的一些订单明细.决定它们的价格,价格决定方式是以订单明细中所包含产品之定价规则为基础决定的.对所有订单明细做完上述动作之后,接下来订单要算出整个折扣,这时候它是以跟客户绑在一起

Java 线程第三版 第四章 Thread Notification 读书笔记

一.等待与通知 public final void wait() throws InterruptedException 等待条件的发生. public final void wait(long timeout) throws InterruptedException 等待条件的发生.如果通知没有在timeout指定的时间内发生,它还是会返回. public final void wait(long timeout, int nanos) throws InterruptedException

2017.06.29数据挖掘基础概念第四章

第四章39.为什么在进行联机分析处理(OLAP)时,我们需要一个独立的数据仓库,而不是直接在日常操作的数据库上进行 1.提高两个系统的性能 2.操作数据库支持多事务的并发处理,需要并发控制和恢复机制,确保一致性和事务的鲁棒性 3.两者有着不同的数据的结构.内容和用法40.什么是数据仓库 数据仓库是一种数据库,它与单位的操作数据库分别维护,数据仓库系统允许将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持,是一个面向主题的.集成的.时变得.非易失的数据集合,支持管理者