2012年2月

程序人生--一个程序员对学弟学妹建议<转>

很久以前就看到这篇博客了,只是当时没保存,今天到一个学弟的博客里又看到了,所以收藏了。就是忘记原作者了。。。

我始终认为,对一个初学者来说,IT界的技术风潮是不可追赶。我时常看见自己的DDMM们把课本扔了,去买些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP 一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学院”。96, 97级的不少大学生都去做Web了。当然我没有任何歧视某一行业的意识。我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是可以走 得更远的。

- 阅读剩余部分 -

模式匹配运算符--Shell

Var=/home/firefox/MyProgram/fire.login.name
${Variable#pattern}:如果模式匹配于变量值的开头处,则删除匹配的最短部分,并且返回剩下的部分例子:
[fire]$ echo ${Var#*/} [fire]$ home/firefox/MyProgram/fire.login.name [fire]$ echo ${Var#/*/} [fire]$ firefox/MyProgram/fire.login.name [fire]$ echo ${Var#*.} [fire]$ login.name

${Variable##pattern}:如果模式匹配于变量值的开头处,则删除匹配的最长部分,并且返回剩下的部分
例子
[fire]$ echo ${Var##*/} [fire]$ fire.login.name [fire]$ echo ${Var##/*/} [fire]$ fire.login.name [fire]$ echo ${Var##*.} [fire]$ name

${Variable%pattern}:如果模式匹配于变量值的结尾处,则删除匹配的最短部分,并且返回剩下的部分
例子
[fire]$ echo ${Var%/*} [fire]$ /home/firefox/MyProgram [fire]$ echo ${Var%.*} [fire]$ /home/firefox/MyProgram/fire.login

${Variable%%pattern}:如果模式匹配于变量值的结尾处,则删除匹配的最长部分,并且返回剩下的部分
例子
[fire]$ echo ${Var%%/*} [fire]$ [fire]$ echo ${Var%%.*} [fire]$ /home/firefox/MyProgram/fire

${#Variable}:返回$Variable值里的字符长度
[fire]$ echo ${#Variable} [fire]$ 39

 

 
#!/bin/bash #移动当前目录下所有.c文件重命名为file-[Number].c,排序 loop=1; while [ $loop -lt 10 ] do file="$loop.c" touch $file let loop++ done iCounter=1 for temp in *.c do New=file-$iCounter.${temp#*.} mv $temp $New 2> /dev/null if [ $? -eq 0 ]; then echo "rename $temp to $New" let iCounter++ fi done

网络中硬件设备简介

看了一段时间的网络,我才发现我连一些基本的硬件设备都不是很清楚,都是很朦朦胧胧的概念,趁这里做一些相关的笔记看,巩固下。

传输介质


直通线(Straight-through):双绞线两端接入RJ-45(水晶头)的线序相同。

交叉线(Crossover):双绞线两端接入RJ-45(水晶头)的线序相反。

- 阅读剩余部分 -

win7+fedora16启动项问题

不久前,实验室一个同学电脑上装的本来是win7+fedora16双系统,结果他不想用fedora16了, 就在windows上把fedora16所在的磁盘格式化了。重新启动后win7和fedora16都进不去了。界面就一直停在grub输入的地方。索性就进winPE了,PE进去重新安装了一下C盘,不过是ghost安装的,安装好之后重启结果还是不能进入win7,还是grub引导那里。后来我就直接再进入PE,用里面的修复启动项软件重写了MBR,这下能进入win7了,并且在进入win7后开始自动重写输入表,驱动之类的。我想了下,下面是整个过程的解释。

- 阅读剩余部分 -

find命令

1.搜索路径下的所有文件和文件夹


$ find base_path -[print]

2.根据文件名或者正则表达式匹配搜索


-name  指定文件名匹配字符串
-iname  忽略大小写

#找到所有./MyProgram下的txt文件
$ find ./MyProgram -name "*.txt"

#忽略大小写,找到.txt或者.TXT文件
$ find ./MyProgram -iname "*.txt"

- 阅读剩余部分 -

子网划分

前面介绍了IP地址的分类,这里再介绍下子网。子网的出现主要是为了合理的利用IP,减少网络流量。在同一个子网里面,数据的流通是直接通过MAC+ARP进行访问的。但是不同的子网就相当于不同的网段,必须通过三层路由进行转发。这里简单的介绍些,系统的知识很多。子网说简单点,就是把IP地址的主机位借走几位当作网络位,那么就可以隔离出更多的小网络,每个小网络有自己的通信。举个例子,假设一个公司使用的IP范围是172.16.0.0/16,现在要求划分出13个网络,那么划分的方法是,假设划分N个子网,必须保证2^N >= 13,N=4,就是划分16个子网,这时候N=4本来是主机位,但是被网络位借走了,172.16.0.0/20,主机位变成了12位子(2^12-2个节点肯定是绰绰有余的)。前面介绍了主机位全为0的就是网络号,而主机位全为1的就是网段的广播地址。

- 阅读剩余部分 -

linux grep命令 <转>

1.作用


Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

2.格式


grep [options]

3.主要参数


[options]主要参数:
-c:只输出匹配行的计数。
-I $L̫WxnME$L̫Wxn用于单字符)。
-h:查询多文件时不显示文件名。
-l  :查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s :不显示不存在或无匹配文本的错误信息。
-v :显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\   : 忽略正则表达式中特殊字符的原有含义。
^  :匹配正则表达式的开始行。
$   : 匹配正则表达式的结束行
\< :从匹配正则表达式的行开始。
\> :到匹配正则表达式的行结束。
[ ] :单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。 :所有的单个字符。
*  :有字符,长度可以为0。

- 阅读剩余部分 -