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.124 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多吧,安裝方法同(一)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章