linux实习笔记(二)

 

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********************************************************

1.看一下咱们用的本本的无线是咋子无线网卡,如下:
  1. [root@liaohg Downloads]# lspci | grep Wireless
  2. 03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8191SEvB Wireless LAN Controller (rev 10)
2.到台湾官网:http://www.realtek.com.tw上下载相应的网卡源码驱动下来,编译安装
   打开网站后,在search框中输入 RTL8192SE,在搜所结果里面找出自己的驱动下载下来
(根据内核版本级别,会有两个linux版本的压缩包,我尝试安装高版本,没成功,低版本可以)
3.接下来就是解压,make & make install
(此处会出现问题,一定要在make之前确保已安装核心对应的如下两个rpm包

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'/的软链接


[root@promote 2.6.32-358.el6.i686]# ln -s  /usr/src/kernels/2.6.32-431.5.1.el6.i686/  build
[root@promote 2.6.32-358.el6.i686]# pwd
/lib/modules/2.6.32-358.el6.i686

)
4.加载无线模块到内存中.
  1. [root@liaohg Downloads]# modprobe r8192se_pci
  2. [root@liaohg Downloads]# lsmod | grep pci
    r8192se_pci           462298  0 
  3. [root@liaohg Downloads]# iwconfig
    wlan0     Link encap:Ethernet  HWaddr 88:9F:FA:FF:DF:94  
              inet6 addr: fe80::8a9f:faff:feff:df94/64 Scope:Link
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 b)  TX bytes:1776 (1.7 KiB)
              Interrupt:17 Memory:f7e88000-f7e88100 

    [root@liaohg Downloads]# 
5.如果安装了NetworkManager,可以在X系统中看到右下角下面看到无线的连接信息,也可以看到搜所到的无线信息号

***********************************************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********************************************************


centos下firefox的flash插件的安装与卸载

2012.02.12 4 Comments

一定要注意系统的位数,是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多吧,安装方法同(一)


你可能感兴趣的:(linux,redhat,kernel,systemtap)