libvirt-python简介:http://www.ibm.com/developerworks/cn/linux/l-libvirt/
ovirt-node下载地址:http://www.ovirt.org/Subprojects
***********************************************NO.1********************************************************
如果文件在之前并不存在,那么就创建它.如:
1 : > data.xxx #文件"data.xxx"现在被清空了.
2
3 #与 cat /dev/null >data.xxx 的作用相同
4 #然而,这不会产生一个新的进程,因为":"是一个内建命令.
***********************************************NO.2********************************************************
/dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!
/dev/zero,是一个输入设备,你可你用它来初始化文件。该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。
/dev/null------它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
***********************************************NO.3********************************************************
注意:在[[]]结构中,将没有文件扩展或者是单词分离,但是会发生参数扩展和命令替换.
1 file=/etc/passwd
2
3 if [[ -e $file ]]
4 then
5 echo "Password file exists."
6 fi
注意:使用[[]],而不是[],能够阻止脚本中的许多逻辑错误.比如,尽管在[]中将给出一个错误,
但是&&,||,<>操作还是能够工作在一个[[]]test之中.
注意:在if后边,test命令和[]或[[]]都不是必须的.如下:
1 dir=/home/bozo
2
3 if cd "$dir" 2>/dev/null; then # "2>/dev/null" hides error message.
4 echo "Now in $dir."
5 else
6 echo "Can't change to $dir."
7 fi
if命令将返回if后边的命令的退出码.
***********************************************NO.4********************************************************
逻辑与
1 if [ $condition1 ] && [ $condition2 ]
2 # 与: if [ $condition1 -a $condition2 ] 相同
3 # 如果condition1和condition2都为true,那结果就为true.
4
5 if [[ $condition1 && $condition2 ]] # 也可以.
6 # 注意&&不允许出现在[ ... ]中.
注意: 在一个 管道 中, 可能有一种把stdin 重定向 到一个文件中的更有效的办法, 这
种方法比 cat文件的方法更有效率.
1 cat filename | tr a-z A-Z
2
3 tr a-z A-Z < filename # 效果相同,但是处理更少,
4 #+ 并且连管道都省掉了.
***********************************************NO.5********************************************************
tac 命令, 就是 cat的反转, 将从文件的结尾列出文件.
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
原因:一台主机上有多个Linux系统,会经常切换,那么这些系统使用同一ip,登录过一次后就会把ssh信息记录在本地的~/.ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告,需要手动删除修改known_hsots里面的内容。
***********************************************NO.6********************************************************
trap 'command' EXIT 或 trap 'command' 0
通过捕获ERR信号,我们可以方便的追踪执行不成功的命令或函数,并输出相关的调试信息,以下是一个捕获ERR信号的示例程序,其中的$LINENO是一个shell的内置变量,代表shell脚本的当前行号。
$ cat -n exp1.sh
1 ERRTRAP()
2 {
3 echo "[LINE:$1] Error: Command or function exited with status $?"
4 }
5 foo()
6 {
7 return 1;
8 }
9 trap 'ERRTRAP $LINENO' ERR
10 abc
11 foo
其输出结果如下:
$ sh exp1.sh
exp1.sh: line 10: abc: command not found
[LINE:10] Error: Command or function exited with status 127
[LINE:11] Error: Command or function exited with status 1
在调试过程中,为了跟踪某些变量的值,我们常常需要在shell脚本的许多地方插入相同的echo语句来打印相关变量的值,这种做法显得烦琐而笨拙。而通过捕获DEBUG信号,我们只需要一条trap语句就可以完成对相关变量的全程跟踪。
以下是一个通过捕获DEBUG信号来跟踪变量的示例程序:
$ cat –n exp2.sh
1 #!/bin/bash
2 trap 'echo “before execute line:$LINENO, a=$a,b=$b,c=$c”' DEBUG
3 a=1
4 if [ "$a" -eq 1 ]
5 then
6 b=2
7 else
8 b=1
9 fi
10 c=3
11 echo "end"
其输出结果如下:
$ sh exp2.sh
before execute line:3, a=,b=,c=
before execute line:4, a=1,b=,c=
before execute line:6, a=1,b=,c=
before execute line:10, a=1,b=2,c=
before execute line:11, a=1,b=2,c=3
end
从运行结果中可以清晰的看到每执行一条命令之后,相关变量的值的变化
***********************************************NO.7********************************************************
ctrl+c是强制中断程序的执行。
ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行.
例如:当你vi一个文件是,如果需要用shell执行别的操作,但是你又不打算关闭vi,因为你得存盘推出,你可以简单的按下ctrl+z,shell会将vi进程挂起~,当你结束了那个shell操作之后,你可以用fg命令继续vi你的文件。
ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF
***********************************************NO.8********************************************************
ls -ltr 按时间反序排序当前文件夹中文件(-r反序)
2、在当前文件夹内查找最近一天内更改的文件(包括子文件夹):
find . -type f -mtime -1
1天以前更改的文件:
find . -type f -mtime +1
最近10分钟内状态变化的文件:
find . -type f -cmin -10
***********************************************2014.3.6********************************************************
kernel-headers-2.6.32-279.el6.i686
kernel-devel-2.6.32-279.el6.i686
使用命令uname -r查看核心版本
如果在make时出现,/lib/modules/2.6.32-279.el6.i686/build/ 无该文件或目录
使用ln -s targets name 创建对应到/usr/src/kernels/'uname -r'/的软链接
***********************************************2014.3.6********************************************************
centos 6.x 添加rpmforge源--- CentOS 6.x 安装rhythmbox mp3插件
在http://dag.wieers.com/packages/rpmforge-release/ 找到一系列的RpmForge-release包。
[root@localhost 桌面]#rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.i686.rpm
CentOS 6.x 安装rhythmbox mp3插件
[root@localhost ~]# yum -yinstall gstreamer-ffmpeg gstreamer-plugins-good gstreamer-plugins-bad gstreamer-plugins-ugly
应用程序 ——> 影音 ——> rhythmbox 音乐播放器
(注:是 rpmforge 源里有 rhythmbox mp3插件)
***********************************************2014.3.6********************************************************
一定要注意系统的位数,是32位的还是64位的,我这里介绍的是32为的,64位的自行下载对应软件安装即可
查看系统版本的命令:getconf LONG_BIT 返回32就是32位,返回64就是64位
(一)用rpm来安装
首先下载rpm安装包,选择的是32bit的最新安装包
wget http://fpdownload.macromedia.com/get/flashplayer/pdc/11.1.102.55/flash-plugin-11.1.102.55-release.i386.rpm
然后安装
rpm -i flash-plugin-11.1.102.55-release.i386.rpm
如此使用rpm方式flash插件就安装好了。如果想选择其他版本可以访问http://get.adobe.com/cn/flashplayer/
说说这个rpm包怎么卸载,两条命令
rpm -e flash-plugin
rpm -qa |grep ^flash-plugin
如果第二条命令返回为空怎么表示卸载干净了。
第一条命令rpm -e flash-plugin是卸载命令,第二条rpm -qa |grep ^flash-plugin是验证是否卸载成功了。
(二) 插件式
其实第二种我也不知道该如何命名,暂时先这么叫吧,如有确切或者更好的,请不吝赐教。
同样要先下载安装包
wget http://fpdownload.macromedia.com/get/flashplayer/pdc/11.1.102.55/install_flash_player_11_linux.i386.tar.gz
然后解压
tar zxvf install_flash_player_11_linux.i386.tar.gz
然后进入 cd install_flash_player_11_linux.i386
然后将libflashplayer.so文件移动到~/.mozilla/plugins/即可,其他文件不要。
如果不知道~/.mozilla/plugins/路径,可以使用
find / -name plugins
来查找,我得到的结果是
/etc/skel/.mozilla/plugins
/usr/lib/qt-3.3/plugins
/usr/lib/mozilla/plugins
/usr/lib/xulrunner-1.9.2/plugins
/usr/lib/krb5/plugins
所以就把libflashplayer.so移动到/usr/lib/mozilla/plugins文件夹下就OK了。
移动命令使用mv。具体请百度 google。
(三)浏览器选择安装法
最近有网友反映插件虽然安装了但是还是提示未安装,主要原因是版本选的不对。
为了能更好的解决这个问题,现加一个方法。
用firefox打开youtube或者其他视频网站,会提示你安装flash,然后点安装,会显示找不到(找到了更好),然后点左下角的那个链接,然后在新打开的网页里点,安装缺失插件,就跳到Adobe的网站了,在那里选择相应版本的插件下载安装就好了。
下载的时候选择.rpm那个大小在6M多吧,安装方法同(一)