shell

grep的查找

grep test *file //在當前目錄中,查找後綴有"test"字樣的文件中包含"test"字符串的文件
grep -r update /etc/acpi //以遞歸的方式查找符合條件的文件
grep -v test*//查找文件名中包含test 的文件中不包含test 的行

sed的編輯  Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操作

sed [-hnV][-e<script>][-f<script文件>][文本文件]
sed -e 4a\newLine testfile 

AWK是一種處理文本文件的語言 

awk '{[pattern] action}' {filenames}
 $ awk '{printf "%-8s %-10s\n",$1,$4}' log.txt

1.ps -ef 查看正在活動的進程

ps -ef |grep abc 查看含有"abc"的活動進程


ps -ef |grep -v abc 查看不含abc的活動進程


2.特殊的處理參數的方法:


$# 傳遞到腳本的參數個數


$* 以一個單字符串顯示所有向腳本傳遞的參


$$ 腳本運行的當前進程ID號


# vi variable
 
腳本內容如下:
 
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"
保存退出
 
賦予腳本執行權限
 
# chmod +x variable
 
執行腳本
 
# ./variable aa bb
number:2
scname:./variable
first:aa
second:bb
argume:aa bb
show parm list:aa bb
show process id:24544
show precomm stat:0
 
通過顯示結果可以看到:
 
$# 是傳給腳本的參數個數
$0 是腳本本身的名字
$1 是傳遞給該shell腳本的第一個參數
$2 是傳遞給該shell腳本的第二個參數
$@ 是傳給腳本的所有參數的列表
$* 是以一個單字符串顯示所有向腳本傳遞的參數,與位置變量不同,參數可超過9個

$* 與 $@ 區別:

  • 相同點:都是引用所有參數。
  • 不同點:只有在雙引號中體現出來。假設在腳本運行時寫了三個參數 1、2、3,,則 " * " 等價於 "1 2 3"(傳遞了一個參數),而 "@" 等價於 "1" "2" "3"(傳遞了三個參數)。

$$ 是腳本運行的當前進程ID號
$? 是顯示最後命令的退出狀態,0表示沒有錯誤,其他表示有錯誤
3.數組:

定義:array_name[0]=value0

讀取:${array_name[index]}

4.Shell 基本運算符


expr命令爲Linux中的命令,一般用於整數


值計算,但也可用於字符串操作


val=`expr 2 + 2`
echo "兩數之和爲 : $val"

5.字符串的輸出:

read name 
echo "$name It is a test"
echo "It is a test" > myfile//

顯示結果定向至文件

原樣輸出字符串,不進行轉義或取變量(用單引號)echo '$name\"'


http://www.runoob.com/linux/linux-command-manual.html命令大全

6.VIM:


6.重定向:

command1 < file1輸入重定向

command > file 將 stdout 重定向到


 file,command < file 將stdin 重定向到


 file。

 追加到 file 

command 2 >> file
 command 2 > file//重定向


7.

  • 管道命令與重定向區別

區別是:

1、左邊的命令應該有標準輸出 | 右邊的命令應該接受標準輸入
   左邊的命令應該有標準輸出 > 右邊只能是文件
   左邊的命令應該需要標準輸入 < 右邊只能是文件

 

2、管道觸發兩個子進程執行"|"兩邊的程序;而重定向是在一個進程內執行

這些都是網上總結很多的,其實只要多加清楚用法,也一定有自己的一份不同描述。

實例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#可以相互轉換情況
#輸入重定向
 
[chengmo@centos5 shell]$ cat test.sh|grep -n'echo'
5:   echo "very good!";
7:   echo "good!";
9:   echo "pass!";
11:   echo "no pass!";
#"|"管道兩邊都必須是shell命令
 
 
[chengmo@centos5 shell]$ grep -n'echo' <test.sh   
5:   echo "very good!";
7:   echo "good!";
9:   echo "pass!";
11:   echo "no pass!";
#"重定向"符號,右邊只能是文件(普通文件,文件描述符,文件設備)


一.linux命令:


修改檔案時間或新建檔案:touch30


-a修改訪問時間


以二進制的方式讀取檔案內容:od


只看尾幾行:tail27


只看頭幾行:head26


一頁一頁的顯示檔案內容:more


由第一行開始顯示檔案內容:cat22


移動檔案與目錄,或更名:mv20


移除檔案或目錄:rm19


複製檔案或目錄:cp18


檔案與目錄的顯示:ls17


刪除『空』的目錄:rmdir16


建立新目錄:mkdir15


顯示當前所在目錄:pwd14


變換目錄:cd


改變文件的權限:chmod11


http://blog.csdn.net/xiaoguaihai/article/details/8705992


vim:


一般模式切換到編輯模式的快捷鍵:


i光標所在處符插入


a光標所在下一個字符插入


o光標所在下一個行插入


r取代光標文字


一般模式切換到指令模式:


:wq!強制存儲離開


http://blog.csdn.net/xiaoguaihai/article/details/8707051




Linux查看CPU和內存使用情況
top 的全屏對話模式可分爲3部分:系統信息欄、命令輸入欄、進程列表欄。
Linux系統怎樣執行進程調度,就是執行schedule()函數,


二.死鎖:
謂死鎖:是指多個進程在運行過程中因爭奪資源而造成的一種僵局。
互斥條件:進程對所分配到的資源進行排它性使用,在一段時間內某資源只由一個進程佔用。
請求和保持條件:指一個進程已經保持了至少一個資源,但又提出新的資源請求,而此資源被其他佔用,此時請求進程阻塞,但又對自己已經佔用的資源保持不放。
不剝奪條件:進程已經獲得資源,在未使用完之前,不能被剝奪,只能在使用完時,由進程自己釋放。
環路等待條件:發生死鎖時,必然存在一個進程-資源的環形鏈。
有序資源分配法避免死鎖


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