打印文件里面空行所在的行号

第一种方法
evan@evan-laptop:~/test/28$ cat test -n
1 one
2
evan@evan-laptop:~/test/28$ grep '.*' test -n
1:one
2:
evan@evan-laptop:~/test/28$ grep ^$ test -n
2:
evan@evan-laptop:~/test/28$ grep ^$ test -n |awk -F : '{print $1}'
2
第二种方法
cat test -n |awk '$2~/^$/{print $1}'

ps 知识点补充

~ performs a case-sensitive match

Passwords are case-sensitive, so note which letters you capitalize.
密码要区分大小写,要注意大写的字母。

rpm 打包入门举例

参考资源
http://vbird.dic.ksu.edu.tw/linux_basic/0520rpm_and_srpm_3.php
http://linux.vbird.org/linux_basic/0520source/main.tgz

第一 源码,并加上Makefile
wget http://linux.vbird.org/linux_basic/0520source/main.tgz
mkdir -p /usr/local/src/main-0.1
tar -zxvf main.tgz -C /usr/local/src/main-0.1
cd /usr/local/src/main-0.1/
tar -czvf main-0.1.tar.gz main-0.1

## add Makefile 要记得下载回来的main.tgz不包括这个文件哦 要加才行
vim Makefile
LIBS = -lm
OBJS = main.o haha.o sin_value.o cos_value.o
main: ${OBJS}
gcc -o main ${OBJS} ${LIBS}
clean:
rm -f main ${OBJS}
install:
install -m 755 main $(RPM_INSTALL_ROOT)/usr/local/bin/main
# 记得 gcc 与 rm 之前是使用 按键作出来的空白喔!

第二 源码放到 /usr/src/redhat/SOURCES 底下,并创建 *.spec 的配置
[root@c main-0.1]# cd ..
[root@c src]# tar -zcvf main-0.1.tar.gz main-0.1
# 此时会产生 main-0.1.tar.gz ,将他挪到 /usr/src/redhat/SOURCES 底下:
[root@c src]# cp main-0.1.tar.gz /usr/src/redhat/SOURCES

创建 *.spec 的配置档
[root@c ~]# cd /usr/src/redhat/SPECS
[root@c SPECS]# vim main.spec
Summary: calculate sin and cos value.
Name: main
Version: 0.1
Release: 1
License: GPL
Group: VBird's Home
#<==记得要写正确的 Tarball 档名喔! Source: main-0.1.tar.gz Url: http://linux.vbird.org Packager: VBird BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %description This package will let you input your name and calculate sin cos value. %prep %setup -q %build make %install rm -rf %{buildroot} mkdir -p %{buildroot}/usr/local/bin make install RPM_INSTALL_ROOT=%{buildroot} %files /usr/local/bin/main %changelog * Wed Jul 01 2009 VBird Tsai 0.1
- build the program

第三编译成RPM AND SRPM
[root@c SPECS]# rpmbuild -ba main.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.3469
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
….(前面省略)….
Processing files: main-debuginfo-0.1-1
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/main-0.1-1-root Wrote: /usr/src/redhat/SRPMS/main-0.1-1.src.rpm Wrote: /usr/src/redhat/RPMS/x86_64/main-0.1-1.x86_64.rpm Wrote: /usr/src/redhat/RPMS/x86_64/main-debuginfo-0.1-1.x86_64.rpm [root@c SPECS]# rpm -ivh /usr/src/redhat/RPMS/x86_64/main-0.1-1.x86_64.rpm [root@c SPECS]# rpm -ql main /usr/local/bin/main [root@c SPECS]# rpm -qi main Name : main Relocations: (not relocatable) Version : 0.1 Vendor: (none) Release : 1 Build Date: Wed 14 Aug 2013 09:10:47 AM CST Install Date: Wed 14 Aug 2013 09:11:32 AM CST Build Host: c.com Group : VBird's Home Source RPM: main-0.1-1.src.rpm Size : 5088 License: GPL Signature : (none) Packager : VBird URL : http://linux.vbird.org Summary : calculate sin and cos value. Description : This package will let you input your name and calculate sin cos value. SRPM 的编译命令 -ba/-bb rpmbuild -ba rp-pppoe.spec

useradd 默认会产生.mozilla

今天 gf 同学在问起 .mozilla 是怎么产生的,这个是谋智的,一看就知,只是好像脚本没有添加的地方呢
哈哈 大家看一下下面 特别是第一条 命令和最后一条命令的结果就知了
[root@6 hddh_setup_evan20120910]# ls /data/www1/ -a
. ..
[root@6 hddh_setup_evan20120910]# groupadd -g 505 ww
[root@6 hddh_setup_evan20120910]# useradd -g ww -u 505 ww -d /data/www1
[root@6 hddh_setup_evan20120910]# ls -a /data/www1/
. .. .bash_logout .bash_profile .bashrc .mozilla

原来,useradd 默认 生成的家目录 就会有.mozilla 可能你会说服务器上没有GUI 哪来谋智的东西呢
因为
[root@6 ~]# ls -a /etc/skel/
. .. .bash_logout .bash_profile .bashrc .mozilla

shell重定向

重定向,经常遇到的应该就是这个了,特别是放在crontab时,就更加有用了,不然,不小心 /var就暴喽 哈哈

1.将错误重定向到标准输出,然后再重定向到 /dev/null,例如:
shel命令 >/dev/null 2>&1

eg
ls >/dev/null 2>&1

注重:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,于是一切静静静:-)

2. #只记录错误日志,追加到log
shel命令 2>>log

3. 另外 :
make >& make_log
意思是把标准输出和错误输出都重定向, make>out 只重定向标准输出!!!!!

>make_log 表示把标准输出重新定向到文件log中
>& make_log 表示把标准输出和错误输出都定向到文件log中,相当于 >log 2>&1

Linux 上的 Web 浏览器中启用 Java

其实 平时Java Plugin平没有安装,直到这几天在搞proxmox时,因为想放弃xen ,不得不安装一下Java Plugin,
Installing Chrome Java Plugin

#其实第一步我就成功了
1) sudo apt-get install icedtea-7-plugin
Then in your chrome browser go to:
chrome://plugins

2) chrome-> Settings-> Show Advanced Settings-> Privacy then click on Content Settings -> Plug-ins then click on Disable Individual Plug-in
3) Disable both “IceTea-Web Plugin” and “Java(TM)”
4) Restart the browser.
5) chrome-> Settings-> Show Advanced Settings-> Privacy then click on Content Settings -> Plug-ins then click on Disable Individual Plug-in
6) Enable only “IceTea-Web Plugin”

https://help.ubuntu.com/community/Java

如何在 Ubuntu Linux 上的 Web 浏览器中启用 Java?
http://www.java.com/zh_CN/download/help/enable_browser_ubuntu.xml
http://askubuntu.com/questions/55848/how-do-i-install-oracle-java-jdk-7

How to enable Java in Chrome and Firefox on Ubuntu

U盘dd后不能从U盘安装os _U盘量产工具问题

昨天安装proxmox 时,在内网借了个闪迪的U盘,但却发现插在e40上,根本就不用安装,总是提示出错,后来,插入到其它机器测试也是一定效果,但以前我安装其它os 也是借
内网的这个闪迪的呢,为什么这次一直不行了, 最终换成了自己的金十顿,把iso dd 进去竟然就可以的, 小胖说是U盘量产工具,也许是吧 以前真的没有留意这个问题呢
于是mark一下

什么是U盘量产?什么是U盘量产工具
http://www.upantool.com/jiaocheng/qidong/2011/603.html

http://baike.baidu.com/view/1449056.htm

U盘启动
http://baike.baidu.com/view/1435293.htm