Shell 基本命令 1

2021-08-08 17:08:51 字數 1876 閱讀 6705

給朋友寫的 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.log2>&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...