給朋友寫的 shell 入門心得shell 命令應該從資源管理的角度去學
常用的命令其實是有兩部分的:
shell 語法中的命令
系統命令
jobs 指的是當前終端中後台執行的任務
具體來說,就是執行的時候用了 & 讓他後台執行
退出的時候,jobs 中的程序會被停止
使用 ctrl-z,fg,bg,kill 切換程序狀態
使用 nohup 啟動不會隨著終端退出的程序
使用 disown 處理已經在執行的程序,讓他不隨終端退出而退出
執行乙個持續的命令,比如ping baidu.com
,會一直執行,這時候按 ctrl-z,此程序會被掛起
$ jobs
[1]+ stopped ping baidu.com
這個時候啊,程序並沒有殺掉,用 kill 來殺。可以看到程序前面那個數字是 1,用 %1 來代替這個程序
kill
%1
當然,殺死的訊號分 1-9 級,9 是不多 bb,直接殺,謹慎使用
kill -9
%1
執行下會出現類似提示
[1]+ terminated ping baidu.com
注意按了 ctrl-z 之後,程序並未在後台執行,而是被掛起了,狀態是stopped
要是想讓他在當前終端的後台執行的話,應該用 bg 命令
$ bg %1
$ jobs
[1]+ running ping baidu.com &
可以看到一堆輸出到螢幕上的資訊,這表明程序是在執行的。
以上的三步操作ping baidu.com -> ctrl-z -> bg %1
其實等效於執行ping baidu.com &
這裡的程序雖然是後台,但還是指終端的後台,會隨著終端退出而退出
好吧,有時候,也想再把它調到前台
fg %1
對掛起的程序也有效
當前終端退出的時候, jobs 裡面能看到的所有程序都會退出
這很多時候不滿足我們的預期
推薦一篇文章,更詳細的描述了各種解決方案
這裡簡單說下 nohup
個人平時用 nohup 比較多
比如剛才的 ping,用 nohup 執行就是
nohup ping baidu.com &
檢視下後台執行的程序
ping baidu.com程序啟動的時候要加 &
nohup 啟動的程序和名字一樣,實際上是讓程序忽略了 hup 訊號,也就是終端退出時會傳送向程序的訊號
預設的輸出檔案是 nohup.out,可以自己更改,並把錯誤流也重定向到相應檔案,寫法如nohup ping baidu.com >/tmp/ping.log 2>&1 &
,其中>/tmp/ping.log
是指輸出重定向到檔案/tmp/ping.log
,2>&1
是指錯誤流(2)合併到輸出流(1)
shell基本命令1
基礎命令 1.顯示時間和日期的命令 date date 2014年 02月 23日 星期日 14 59 20 cst date y m d 2014 02 23 date h m 14 59 2.顯示日曆 cal cal 二月 2014 日 一 二 三 四 五 六 1 2345 678 910111...
Shell基本命令
1命令列補全和萬用字元 輸入檔案或目錄或命令的時候,當輸入一部分時候,按下 tab鍵,會自動補全資訊 使用 匹配任意多個字元,find cfg 會查詢到所有的。cfg結尾的檔案 2 pwd 顯示當前目錄 3 cd 切換目錄 cd.返回上級目錄 cd返回使用者主目錄 4 ls 列出目錄內容 ls a ...
1 基本命令
1.git diff 比較不同git diff 工作區與暫存區比較git diff head 檔名 比較工作區與版本庫的區別git diff staged 暫存區與版本庫的比較 2.git log 日誌 git log git log pretty oneline 顯示一行 full,short,f...