Shell 命令積累

1.   ##將"/"的文字刪除,即輸出"/"符號之前的不重複數據,僅僅是打印出,不會改動源文件:

       cat ~/vob.log | sed 's/\/.*//g' | uniq 

2.    刪除多餘bfagent 進程:

   ps aux | grep bfagent | grep Rs | awk '{print $2}'| xargs kill -9

       ps -el | grep bfagent | grep -v S | awk '{print $4}'| xargs kill -9


3.  全目錄拷貝命令:

    (cd bay319/      && tar cf - .)| (cd scripts/ && tar xpvf -)


4. 列出home目錄大小:

   for dir in $(ls      /home)

        do user=$(ls -ld /home/$dir | awk '{print $3}');su $user -c  "du -sh /home/$dir"

  done


5.查看sprac 機器配置信息:

  prtconf -v;showrev


6.查看solaris 硬件配置信息:
   prtdiag -v

7. Solaris 8 的加密算法爲DES,而linux 爲MD5,solaris 9 以上支持MD5算法。

8. cut -d      ":" -f1 ~/nis_user.txt輸出用戶名

9. 如果想下載一個網站上目錄中的所有文件, 我需要執行一長串wget命令, 但這樣做會更好:
  
  wget -nd -r -l1 --no-parent http://www.foo.com/mp3/
  
這條命令可以執行的很好,但有時會下載像 index.@xx 這樣一些我不想要的文件. 如果你知道想要文件的格式, 可以用下面的命令來避免下載那些多餘的文件:

  wget -nd -r -l1 --no-parent -A .mp3 -A .wma http://www.foo.com/mp3/

10.腳本添加用戶:

cnbjnis:~ # useradd -u 3001 chenxj
cnbjnis:~ # echo password | passwd --stdin chenxj

11. solaris 提示terminal too wide.

 stty columns 120

12. 有時候爲了方便管理,我們常常喜歡在Linux中將之安裝爲服務,然後就可以使用服務來管理。

但是當我們運行安裝服務的命令時候,假設服務名爲myservice

 chkconfig --add myservice

常常會出現

 "service myservice does not support chkconfig"

我們一般在腳本開頭加入下面兩句就好了

 vim /etc/init.d/myservice

添加下面兩句到 #!/bin/bash 之後。

 # chkconfig: 2345 10 90
 # description: myservice ....

其中2345是默認啓動級別,級別有0-6共7個級別。

等級0表示:表示關機

等級1表示:單用戶模式

等級2表示:無網絡連接的多用戶命令行模式

等級3表示:有網絡連接的多用戶命令行模式

等級4表示:不可用

等級5表示:帶圖形界面的多用戶模式

等級6表示:重新啓動

10是啓動優先級,90是停止優先級,優先級範圍是0-100,數字越大,優先級越低。

 #vi      /var/lib/dhclient/dhclient-eth0.leases

13. sed最常用的用法莫過於替換文件,其默認的模式是直接輸出在shell中,Old 爲要替換的文本,New 爲將要替換成的文本。

 sed 's/Old/New/' My_File.txt

如果我們想要sed直接在文件中更改,只需要在sed後面添加 -i 或 -ig即可,-g應該是指全局。

 sed -i 's/Old/New' My_File.txt

在mac中需要添加 -ig才能夠執行(沒有嘗試過)

14. 檢查進程號
 
 checkproc -v proc

15. 查找incoming目錄下的2個月以前的文件,並將它們移動到/pub/pub/clearcase/multisite_bak/incoming/下:
 
 find /shipping/ms_ship/incoming  -mtime +2 -print -exec mv {} /pub/pub/clearcase/multisite_bak/incoming/ \;

16. 殺掉該用戶的所有進程
 
 kill -9 `lsof -t -u daniel`

17. 打印從包含 "BEGIN" 的行開始,並且以包含 "END" 的行結束的文本塊:

 sed -n -e '/BEGIN/,/END/p' /my/test/file | more

    如果沒發現 "BEGIN",那麼將不打印數據。如果發現了 "BEGIN",但是在這之後的所有行中都沒發現 "END",那麼將打印所有後續行。發生這種情況是因爲 sed 面向流的特性 -- 它不知道是否會出現 "END"

18. Solaris 10 開啓SSH

系統版本:SunOS solaris1 5.10

內核版本:5.10 i86pc

Solaris 10在安裝完成後,默認是沒有開啓ssh服務的,如果要開啓ssh服務,就要做如下操作。

1. 修改配置文件

 vi /etc/ssh/sshd_config

   將PermitRootLogin no更改爲PermitRootLogin yes

2. 重啓ssh服務

 /lib/svc/method/sshd restart

3. 查看ssh開放服務的端口,ssh默認開放端口爲22端口,通過從查看端口來確定服務是否開啓。

 netstat -avn | grep 22


19. shell分類:

       1.交互式登錄shell:以一個用戶的身份登陸進去,輸入命令的格式的shell。

         讀取配置文件的順序:

            /etc/profile-->/etc/profile.d/*-->~/.bash_profile-->~/.bashrc-->/etc/bashrc     

       2.非交互式登錄shell:只在一個腳本的,不需要用戶登錄,自動運行。             

           讀取配置文件的順序:

            /.bashrc-->/etc/bashrc-->/etc/profile.d/*  


20.檢查網址是否連通

ping=`ping -c 3 192.168.1.69|awk 'NR==7 {print      $4}'`

ping=`ping -c 1 $i|grep loss|awk '{print $6}'|awk -F "%" '{print $1}'`

21.以數字形式顯示文件權限:stat -c %a



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