1. 程式人生 > >Linux知識總結

Linux知識總結

帳戶 roo 通過 串行 amp 後臺 執行時間 ini number

Linux 知識總結
1. Linux中多進程並行執行
(1)Shell默認以串行的方式自上而下執行命令

[root@mail SHELL]# cat para_while.sh

#!/bin/bash
# test while loop

date
for num in `seq 1 10`
do {
    echo "The number is:$num"
}  
done 
echo "Finish!"
date
[root@mail SHELL]# sh para_while.sh 
Mon Oct 29 17:18:03 CST 2018
The number is:1
The number is:2
The number is:3
The number is:4
The number is:5
The number is:6
The number is:7
The number is:8
The number is:9
The number is:10
Finish!
Mon Oct 29 17:18:03 CST 2018

發現執行時間較快。

(2)shell中並行執行:(wait命令和‘&‘後臺符號可以實現並行,但無法控制進程數)

wait命令:是等待前面的後臺任務全部完成才往下執行,否則程序本身是不會等待的,這樣對後面依賴前面任務結果的命令來說就可能出錯。
“&”:默認情況下,shell命令是阻塞執行的,可以通過其後添加’&’讓這條命令異步執行。

[root@mail SHELL]# cat para2_while.sh

#!/bin/bash
# test while loop

date
for num in `seq 1 10`
do {
    echo "The number is:$num"
}  &
done 
wait
echo "Finish!"
date
[root@mail SHELL]# sh para2_while.sh 
Mon Oct 29 17:18:06 CST 2018
The number is:8
The number is:9
The number is:10
The number is:7
The number is:3
The number is:4
The number is:5
The number is:1
The number is:6
The number is:2
Finish!
Mon Oct 29 17:18:06 CST 2018

發現執行時間很快。

2. linux命令

nohup命令:no hang up,不掛斷命令;你希望退出帳戶或者關閉終端之後不關閉相應的進程時使用(希望程序仍然執行時使用)。

例子:

 nohup command &                
 nohup command > myout.file 2>&1 &      ##輸出日誌到myout.file,並將標準錯誤輸出,重定向到標準輸出,再被重定向到myout.file。

fg命令:用於將後臺作業(在後臺運行的或者在後臺掛起的作業)放到前臺終端運行。

例:使用fg命令將任務號為2的任務從後臺執行轉換到前臺執行,輸入如下命令:
fg 2

bg命令:用於將作業放到後臺運行,使前臺可以執行其他任務。該命令的運行效果與在指令後面添加”&”符號的效果是相同的,都是將其放到系統後臺執行。

例:使用bg命令將任務號為1的任務放到後臺繼續執行,輸入如下命令:
bg 1

jobs命令:用於顯示Linux中的任務列表及任務狀態,包括後臺運行的任務。該命令可以顯示任務號及其對應的進程號。帶+表示最新的jobs;帶-表示次新的jobs;其他jobs不帶符號.

3、Linux中權限設置
修改某個目錄下所有文件的權限,包括子目錄中的文件權限;使用參數-R表示啟動遞歸處理。

[root@local ~]# chmod 777 /home #把/home目錄的權限設置為rwxrwxrwx,可讀可寫可執行
[root@local ~]# chmod -R 777 /home  #將整個/home目錄與其中的文件和子目錄的權限都設置為rwxrwxrwx,可讀可寫可執行

4. (1)查看全部進程數
ps -ef | wc –l
(2)查看Tomcat的進程數
ps -ef | grep Tomcat | wc –l

Linux知識總結