1.常用指令
ls 顯示文件或目錄
-l 列出文件詳細信息l(list)
-a 列出當前目錄下所有文件及目錄,包括隱藏的a(all)
mkdir 創建目錄
-p 創建目錄,若無父目錄,則創建p(parent)
cd 切換目錄
touch 創建空文件
echo 創建帶有內容的文件。
cat 查看文件內容
cp 拷貝
mv 移動或重命名
rm 刪除文件
-r 遞歸刪除,可刪除子目錄及文件
-f 強制刪除
find 在文件系統中搜索某文件
wc 統計文本中行數、字數、字元數
grep 在文本文件中查找某個字元串
rmdir 刪除空目錄
tree 樹形結構顯示目錄,需要安裝tree包
pwd 顯示當前目錄
ln 創建鏈接文件
more、less 分頁顯示文本文件內容
head、tail 顯示文件頭、尾內容
ctrl+alt+F1 命令行全屏模式
2.系統管理命令
stat 顯示指定文件的詳細信息,比ls更詳細
who 顯示在線登陸用戶
whoami 顯示當前操作用戶
hostname 顯示主機名
uname 顯示系統信息
top 動態顯示當前耗費資源最多進程信息
ps 顯示瞬間進程狀態 ps -aux
查看目錄大小 -h /home帶有單位顯示目錄信息
df 查看磁碟大小 df -h 帶有單位顯示磁碟信息
ifconfig 查看網路情況
ping 測試網路連通
netstat 顯示網路狀態信息
man 命令不會用了,找男人 如:man ls
clear 清屏
alias 對命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill 殺死進程,可以先用ps 或 top命令查看進程的id,然後再用kill命令殺死進程。
3.打包壓縮相關命令
tar: 打包壓縮
-c 歸檔文件
-x 壓縮文件
-z gzip壓縮文件
-j bzip2壓縮文件
-v 顯示壓縮或解壓縮過程 v(view)
-f 使用檔名
例:
tar -cvf /home/abc.tar /home/abc 只打包,不壓縮
tar -zcvf /home/abc.tar.gz /home/abc 打包,並用gzip壓縮
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,並用bzip2壓縮
當然,如果想解壓縮,就直接替換上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的「c」 換成「x」 就可以了。
3.關機/重啟機器
shutdown
-r 關機重啟
-h 關機不重啟
now 立刻關機
halt 關機
reboot 重啟
4.Linux管道
將一個命令的標准輸出作為另一個命令的標准輸入。也就是把幾個命令組合起來使用,後一個命令除以前一個命令的結果。
例:grep -r "close" /home/* | more 在home目錄下所有文件中查找,包括close的文件,並分頁輸出。
5.Linux軟體包管理
dpkg(Debian Package)管理工具,軟體包名以.deb後綴。這種方法適合系統不能聯網的情況下。
比如安裝tree命令的安裝包,先將tree.deb傳到Linux系統中。再使用如下命令安裝。
sudo dpkg -i tree_1.5.3-1_i386.deb 安裝軟體
sudo dpkg -r tree 卸載軟體
註:將tree.deb傳到Linux系統中,有多種方式。VMwareTool,使用掛載方式;使用winSCP工具等;
APT(Advanced Packaging Tool)高級軟體工具。這種方法適合系統能夠連接互聯網的情況。
依然以tree為例
sudo apt-get install tree 安裝tree
sudo apt-get remove tree 卸載tree
sudo apt-get update 更新軟體
sudo apt-get upgrade
6.將.rpm文件轉為.deb文件
.rpm為RedHat使用的軟體格式。在Ubuntu下不能直接使用,所以需要轉換一下。
sudo alien abc.rpm
7.vim使用
vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。
命令模式下:
:q 退出
:q! 強制退出
:wq 保存並退出
:set number 顯示行號
:set nonumber 隱藏行號
/apache 在文檔中查找apache 按n跳到下一個,shift+n上一個
yyp 復制游標所在行,並粘貼
h(左移一個字元←)、j(下一行↓)、k(上一行↑)、l(右移一個字元→)
8.用戶及用戶組管理
/etc/passwd 存儲用戶賬號
/etc/group 存儲組賬號
/etc/shadow 存儲用戶賬號的密碼
/etc/gshadow 存儲用戶組賬號的密碼
useradd 用戶名
userdel 用戶名
adser 用戶名
groupadd 組名
groupdel 組名
passwd root 給root設置密碼
/etc/profile 系統環境變數
bash_profile 用戶環境變數
.bashrc 用戶環境變數
su user 切換用戶,載入配置文件.bashrc
su - user 切換用戶,載入配置文件/etc/profile ,載入bash_profile
更改文件的用戶及用戶組
sudo chown [-R] owner[:group] {File|Directory}
例如:還以jdk-7u21-linux-i586.tar.gz為例。屬於用戶hadoop,組hadoop
要想切換此文件所屬的用戶及組。可以使用命令。
sudo chown root:rootjdk-7u21-linux-i586.tar.gz
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
UNIX操作系統(尤尼斯),是一個強大的多用戶、多任務操作系統,支持多種處理器架構,按照操作系統的分類,屬於分時操作系統,最早由KenThompson、Dennis Ritchie和Douglas McIlroy於1969年在AT&T的貝爾實驗室開發。目前它的商標權由國際開放標准組織所擁有,只有符合單一UNIX規范的UNIX系統才能使用UNIX這個名稱,否則只能稱為類UNIX(UNIX-like)。
2. 如何殺死Unix操作系統下不服管教的進程 (1)
可是有時候這個守護神也會鬧別扭,會跟Unix操作系統作對。如明明任務已經執行完成了,但是卻沒有正常結束進程。又或者進程無緣無故佔用了大量的系統資源,導致系統速度減慢,影響了其他作業的正常運行。對於這些不服管教的進程,系統工程師只能夠拿起手中的屠刀,實行「殺無赦」政策。 在Unix系統中有多種手段可以殺死這些異常的進程。通常情況下,筆者建議是殺進程的工作要有序的進行,盡量採取一些對操作系統影響小的方法。 第一階段:在本機上殺死進程。 系統工程師可以直接在Unix系統的命令中斷採用相關的命令來殺死異常進程。如可以按鍵盤上的DEL鍵、Ctrl+D鍵、Break鍵等等殺死進程。系統工程師按下這些鍵的任何一個,都會向系統進程發送中斷信號。注意,通常情況下只有root用戶才能夠殺死其他擁護的進程或者系統進程;而其他用戶只能夠殺死自己的進程。如現在Unix系統中要部署一個Oracle資料庫伺服器。為了管理方便,Unix系統工程師建立了一個Oracle用戶,用來進行資料庫系統的維護與管理。此時,Oracle這個用戶就會運行幾個進程,如tns等進程。正常情況下,Oracle用戶以及root用戶都可以殺死這個進程。但是如果這個系統中還有其他用戶,則無法殺死這個進程。 另外如果用戶想殺的進程是shell的子進程,則還可以採用kill命令家進程的作業號的方式。如kill % 作業號等等。Shell是Unix系統中很好的一個交互工具,也有人把它叫做命令行界面,是Unix操作系統下最傳統、歷史最悠久的用戶和計算機的交互截面。系統管理員可以在這里直接輸入相關的命令來執行各種各樣的維護任務,包括殺死異常進程等等。其實它跟微軟操作系統下的命令行界面很相似,不過也有一些差異的地方。如Unix操作系統下的shell既是用戶與系統交互的界面,也是控制系統的腳本語言。這就是兩者最大的差異。Shell做重要的特點就是隱藏了操作系統的底層細節,故對於工程師來說這是首選的維護系統的工具。 其實大部分時候工程師都是在shell環境下管理進程,包括上篇文章中談到的查看進程信息、把後台進程調到前台等等。故在本機上殺死進程也大部分是在shel環境下進行。為此系統工程師用的更多的可能還是利用kill命令來殺死shell子進程。 第二階段:從另一個終端來殺進程。 有時候可能進程比較頑固,若從當前終端來殺它的話,還殺不掉。此時管理員就可以通過曲線救國的方式,從另一個終端登陸到Unix操作系統,然後採用kill命令來殺死異常進程。這個主要的步驟如下。 第一步從另一個終端登陸操作系統。通常情況下,Unix系統支持多個終端。當系統工程師發現在當前終端無法殺死某個進程的話,則不用急於通過重新啟動或者強制關機等方式來殺死這些殺不掉的進程。這是下下之策。遇到這種情況,系統工程師可以從另外一個終端登陸到操作系統,然後嘗試使用kill命令來殺死進程。 第二步使用ps –u命令來查找需要殺死進程所對應的進程號或者作業號。ps 命令將活動進程的當前狀態和有關的內核線程寫到標准輸出中。這個命令有很多參數,如-m、-l、s、u 和 v等等。注意當採用-m參數時則系統將使用額外的行顯示與進程相關的線程。不帶任何參數時,ps 命令將會顯示關於當前工作站的信息。而使用-o參數時,ps命令檢查內存或調頁區域並確定進程創建時的命令名和參數是什麼。如果 ps 命令不能找到該信息,存儲在內核中的命令名顯示在方括弧中。如果想快速查找特定作業的進程信息,採用-u參數是不錯的選擇。如ps –u oracle 等等。 第三步使用kill命令殺死異常進程,如kill 26014。Kill命令就會向目標進程發送一個信號以中斷這個進程。通常情況下,此時就可以殺死那些比較頑固的進程。如果在kill命令後面沒有加上進程號或者作業號,則系統會採用默認的信號值15,這是一個終止命令。如果此時還沒有殺死這個進程的話,那麼可以採用更強烈的方式,即kill -9 進程號。對於頑固進程來說,這條命令可能會更加有用。這主要是因為這個命令使進程在接收到中斷信號後,不能關閉它在使用的任何文件。正是因為有這個後遺症,故只有在採用上面那幾種手段無效的情況下,才推薦使用這個終極殺手。 第三階段:通過父進程來殺死子進程。 在unix操作系統中,進程有父子進程的關系。某個進程可能會創建另外一個進程,這個創建者就是父進程,而新建立的進程就是子進程。通常情況下,如果停止了一個父進程,則該父進程產生的所有子進程都將自動終止。但是,這個過程可能會破壞數據文件或者其他一些難以預料的結果。故正常情況下,筆者是建議系統工程師先關閉掉所有的子進程,然後再關閉父進程。 但是,當採取了任何手段,包括kill -9手段之後仍然無法正常殺死頑固進程之後,系統工程師只好採用這個終極殺手,即通過關閉父進程來自動關閉不聽話的子進程。但是,正如上面所說的,這很可能會導致一些連鎖反映。所以在採用這種方式之前,系統工程師還是要預先估計一下可能會帶來的後果。如可以把這個父進程所產生的子進程能夠關閉的先關閉掉。然後再通過殺死父進程來自動終止子進程。這可以把對操作系統的不利影響降低到最低。 第四階段:利用系統注銷功能來關閉殺不掉的進程。 若通過關閉父進程仍然殺不死子進程的話,那麼管理員還可以通過注銷系統的方式來殺死進程。這就好象Windows系統注銷一樣,會關閉當前的所有進程與任務。不過有時候系統工程師可能不想關閉所有的進程,如一些關繫到伺服器運行的進程。此時,系統工程師在注銷系統之前,需要採取一定的手段,讓系統注銷後仍然能夠保持某些進程正常運轉。如果系統工程師想在系統注銷後仍然執行一個或者多個進程,則可以採用nohup命令。如此設置後,即使在系統注銷後,在後台執行的進程仍然可以繼續執行,不會終止。這個手段就可以把系統注銷對於用戶的不利影響降低到最低。如果Unix操作系統是企業中的一台伺服器,而不是客戶端,那麼這個特性將會對企業很有利。 nohup命令運行由Command參數和任何相關的Arg參數指定的命令,而忽略所有掛斷信號。為此在系統注銷後仍然可以使用nohup命令運行後台中的程序。注意無論是否將 nohup命令的輸出重定向到終端,輸出都將附加到當前目錄的nohup.out 文件中。如果當前目錄的nohup.out文件不可寫,則輸出重定向到$HOME/nohup.out 文件中。如果上面這些文件都不可以用的話,那麼Command參數指定的命令不可調用。故系統工程師如果事後要查看這些系統注銷後仍然運行在後台進程的結果,就可以依次查看以上這兩個文件。 操作系統注銷後,通常再頑固的進程都會被殺死掉。不過有時候會因為進程實在難纏,注銷的過程時間可能會比較長。若操作系統在長時間後仍然無法注銷的話,那隻有強制重新啟動電腦了。不過重新啟動後很可能會出現啟動故障。為此,重新啟動系統來終止進程是不得已而為止的做法了。
3. unix kill命令
kill -n pid 其實就是unix系統給指定的pid的進程發送信號的一個過程.9隻是其中一個信號,程序執行階段捕獲到自己的信號就會做出響應的反應.當然程序也可以忽略一部分信號.
「信號」是指那些被非同步發送到一個程序的事件。默認情況下,它們通常會終止一個程序的運行。
1) 查看有哪些信號及其編號
$ trap -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1
36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5
40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9
44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13
52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9
56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5
60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1
64) SIGRTMAX
2) 信號詳情
名稱 默認動作 說明
SIGHUP 終止進程 終端線路掛斷
SIGINT 終止進程 中斷進程
SIGQUIT 建立CORE文件 終止進程,並且生成core文件
SIGILL 建立CORE文件 非法指令
SIGTRAP 建立CORE文件 跟蹤自陷
SIGBUS 建立CORE文件 匯流排錯誤
SIGSEGV 建立CORE文件 段非法錯誤
SIGFPE 建立CORE文件 浮點異常
SIGIOT 建立CORE文件 執行I/O自陷
SIGKILL 終止進程 殺死進程
SIGPIPE 終止進程 向一個沒有讀進程的管道寫數據
SIGALARM 終止進程 計時器到時
SIGTERM 終止進程 軟體終止信號
SIGSTOP 停止進程 非終端來的停止信號
SIGTSTP 停止進程 終端來的停止信號
SIGCONT 忽略信號 繼續執行一個停止的進程
SIGURG 忽略信號 I/O緊急信號
SIGIO 忽略信號 描述符上可以進行I/O
SIGCHLD 忽略信號 當子進程停止或退出時通知父進程
SIGTTOU 停止進程 後台進程寫終端
SIGTTIN 停止進程 後台進程讀終端
SIGXGPU 終止進程 CPU時限超時
SIGXFSZ 終止進程 文件長度過長
SIGWINCH 忽略信號 窗口大小發生變化
SIGPROF 終止進程 統計分布圖用計時器到時
SIGUSR1 終止進程 用戶定義信號1
SIGUSR2 終止進程 用戶定義信號2
SIGVTALRM 終止進程 虛擬計時器到時
4. 有關於shell的命令,本人剛接觸shell,主要是想知道他具體的命令
Shell基礎:
你可以通過打開Linux的terminal(終端)來執行Shell命令。Shell的種類有很多種,例如CSH,Bourne
Shell,Korn Shell。在現在的大多數Linux發行版中,默認的Shell一般都是Bourne again
shell(bash)。
想看看你的Shell是哪一種,執行下面的命令
echo
$SHELL
在Linux中,$符號代表一個shell變數。所有的shell都用這種方式使用變數。有一些shell變數在你的系統啟動的時候就有了默認值。例如,$SHELL;$LOGNAME是你的登錄名,而$PATH變數指明了你的shell命令的搜索范圍。
echo命令的作用就是列印出你的輸入。如果你的輸入具有shell的特殊意義,例如shell變數,他就輸出變數的值。
一個重要的地方是,你要注意文本的大小寫。例如,ls,是DOS的dir命令的Linux版本。這個命令列出當前工作目錄下的文件列表。如果你輸入的是LS,你得到的只能是「找不到命令」的錯誤信息。
另外在Linux
shell命令中一個重要的地方是,你可以將命令串起來。這是Unix/Linux從第一天開始就有的巧妙的特點。最簡單的將命令連起來的辦法就是使用「|」,我們稱之為「pipe」。第一個命令的輸出就是下一個命令的輸入。
Linux命令有自己的語法規則:
基本的語法就像這樣:
command -option
file
例如:
ls
-la
這行命令的意義是輸出當前目錄的所有文件的文件名,l代表「long」,a代表「all」,有了l選項,你會發現,輸出的內容比較豐富,不只包括文件
名,還有文件的訪問許可權,所有者,所屬組等。你會發現這個命令會在屏幕上輸出大量的信息,如果當前目錄的文件比較多的話。
現在就是「pipe」出場的時候了。
ls
-la | more
你會在屏幕上看到如下信息:
你也可以在大多數Linux命令中使用通配符。通配符就是可以代表文件名中任何未知的字元或字元串。例如,*就代表任意字元串,?代表單個字元。例如:
ls
-l a*
這個命令會列出在當前工作目錄下所有的以小寫a開頭的文件,比如說abc.txt,alpha.jpg等等。
ls
a?cd
這條命令會列出所有以小寫a開頭隔一個未知字元以小寫cd結尾的所有文件。例如adcd,axcd,但是不會列出adfdcd,也不會列出axcd.txt。
一些常用的命令
man:如果你想了解每一個命令代表什麼含義以及他的用法,你就可以使用man(意義為manual)命令,例如:
man
ls
man輸出的內容是為系統管理員和開發者編寫的,如果你想了解更多命令的用法,你可以去找網路上的Linux命令文檔,有一個非常方便的就是丹尼爾·巴雷特的Linux的袖珍指南。
在以前如果你真的想學習Linux和Unix你必須閱讀man手冊。而在2012年的今天,面對如此好用的圖形界面,這句話顯得不是那麼的重要,但是如果你想了解Linux更深,閱讀man手冊仍然是一個好的開始。
su和sudo:su命令的作用是切換用戶,這也被稱為超級用戶,因為在有些系統中su命令可以使你以系統的所有許可權用戶root登錄。除非你是系統管理員,否則我絕不推薦你使用su切換到root,因為這可能給你帶來很多麻煩。
一個相對安全的多的辦法是使用sudo命令,這個命令可以上你以root許可權運行一個命令。
這兩個命令都需要系統密碼。在大多數Linux的桌面發行版中這兩個是相同的,就是你系統的第一個用戶設置的密碼。
grep:grep是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。例如:
grep
foo /etc/passwd
返回在password文件中所有的含有foo的行
grep -i 「foo」
/etc/passwd
-i選項是忽略大小寫,這就意味著若某一行含有FOO或FOo也會被搜索到。
grep還支持遞歸搜索:
grep
-r 「foo」
/home/sjvn
這條命令將會搜索/home/sjvn目錄及其子目錄下所有的包含「foo」的行
grep也通常與其他命令串連起來使用,例如:
ls
-la | grep
foo*
列出當前目錄下任何以foo開頭的文件或目錄。例如如下文件將被匹配:foo,foobar,foolish.txt等等。
ps:報告進程的狀態。此命令將顯示哪些程序正在運行。我使用PS和grep比其他任何命令使用的都要多。
現在假如你有一個程序運行出了錯誤,你不能再桌面上把他關掉,(我看準你了,火狐),我運行如下命令就能查看他的進程id:
ps
-ef | grep firefox
這條命令做了如下事情:
kill -9
1234
·第一,他找出所有當前在我的電腦上運行的程序
·然後grep命令找出這些文件中叫「firefox」的,顯示到屏幕上。
·每一行都有一個進程id數字。有了,現在我就可以是用...
kill:這條命令就想他的名字一樣,他可以幹掉指定的進程。幹掉運行錯誤的firefox或者其他我想幹掉的進程。
kill
1234
這將會幹掉所有進程id為1234的程序。為了確保這個程序已經被幹掉(強行終止),我使用下面的命令。
clear:如果你覺得你的屏幕上有太多的東西,看起來很討厭,可以使用clear命令清空。
文件/目錄命令
cp:cp代表,就是復制,他可以復制一個或多個文件到指定的一個或多個目錄下。
一個通常的用法是:
cp
fred.txt ethel.txt
把fred.txt中的內容復制到當前文件夾中名為ethel.txt中
cp fred.txt
/home/sjvn/docs/fred.txt
把fred.txt復制到指定文件中。
cp *.txt
/home/sjvn/docs/
復制當前目錄下所有以.txt結尾的文件到指定的目錄下。
cp -r
/home/sjvn/docs/*
/home/sjvn/backup
遞歸的復制在/home/sjvn/docs/目錄下的所有文件到指定的文件夾。
hostname:顯示你當前登錄進去的計算機的名稱。
mv:mv(意義為move)顧名思義就是移動,可以移動指定文件到指定位置。當然這個命令有的時候還可以用來實現重命名。
例如:
mv
fred.txt
ethel.txt
這條命令的作用你可以簡單的認為是重命名fred.txt為ethel.txt。
當然此命令還有其他用法,此處不再一一羅列,用法與cp類似,只是這條命令不再保留原文件。
rm:rm代表remove,是刪除的意思,所以我運行:
rm
fred.txt
我將刪除fred.txt。
我強烈推薦你在執行rm命令的時候使用-i選項。這兒選項將在你執行命令的時候詢問你是否要真的刪除文件。就像這樣:
rm
-i fred.txt
系統信息
uname:uname
-a命令用一行簡短的給你總結的電腦的基本信息。這通常包括你的電腦名稱,Linux內核版本,你的發行版名稱等。
對於更詳細的信息,你可以使用cat命令,他可以顯示你的Linux電腦中的文本信息。
cat
/proc/cpuinfo
展示你的CPU的重要的統計。
cat
/proc/version
展示你的當前運行的Linux發行版的詳細信息。
cat
/etc/printcap
展示你當前安裝的列印機。
set | more:
set|more
組合命令可以給你更多的呢當前的桌面環境變數的信息。單如果你只是想知道你系統環境變數中的某一個或兩個,可以執行如下命令:
echo
$PATH
結束或者說是另一個開始
這里給你展示的只不過是Linux命令的表皮。成百上千的書和網站可以給你更多更復雜的如何使用Linux命令的展示。本文只是讓你在想了解比Linux
Gui更深一層時的參考。
5. kill sh(UNIX/LINUX)
kill命令默認發送的是TERM信號,而shell進程會忽略TERM信號,因此用kill sh是殺不掉shell進程的。可以使用kill -KILL或者kill -9試試。
6. linux kill命令
linux kill命令使用場景:當需要中斷一個前台進程的時候,通常是使用< Ctrl+c >組合鍵;但是對於一個後台進程恐怕就不是一個組合鍵所能解決的了,這時就必須求助於kill命令。
kill命令是通過向進程發送指定的信號來結束進程的。如果沒有指定發送信號,那麼默認值為TERM信號。TERM信號將終止所有不能捕獲該信號的進程。至於那些可以捕獲該信號的進程可能就需要使用kill(9)信號了,該信號是不能被捕捉的。
kill命令的語法:
kill [-s 信號 | -p ] [ -a ] 進程號
kill -l [信號]
說明:-s 指定需要送出的信號。既可以是信號名也可以對應數字。
-p 指定kill命令只是顯示進程的pid,並不真正送出結束信號。
-l 顯示信號名稱列表,這也可以在/usr/include/linux/signal.h文件中找到。
kill命令的使用:
[舉例] 在執行一條find指令時由於時間過長,決定終止該進程。
首先應該使用ps命令來查看該進程對應的PID,鍵入ps,顯示如下:
PID TTY TIME COMMAND
285 1 00:00:00 -bash
287 3 00:00:00 -bash
289 5 00:00:00 /sbin/mingetty tty5
290 6 00:00:00 /sbin/mingetty tty6
312 3 00:00:00 telnet bbs3
341 4 00:00:00 /sbin/mingetty tty4
345 1 00:00:00 find / -name foxy.jpg
348 1 00:00:00 ps
可以看到該進程對應的PID是345,現在使用kill命令來終止該進程。鍵入:
# kill 345
再用ps命令查看,就可以看到,find進程已經被殺掉了。
7. 在linux/unix操作系統中用什麼命令可以向一個進程發送信號
Linux/Unix中向一個進程發送信號用kill命令,不要以為kill命令只是用來殺死進程的,它可以發送各種信號給進程,殺死進程只是用到了其中的一個SIGKILL信號,kill命令的格式其實是這樣的:
kill 信號參數 進程PID
其中常見的信號參數(英文橫杠加阿拉伯數字)有如下幾個,更多的信號信息參考可以用man命令查看手冊頁(man 7 signal):
-1:這個參數代表SIGHUP信號,作用類似重新啟動進程;
-2:這個參數代表SIGINT信號,作用相當於在命令行輸入Ctrl+C組合鍵中斷進程的運行;
-9:這個參數代表SIGKILL信號,代表強制中斷進程;
-15:這個參數代表SIGTERM信號,表示正常的終止進程;
-17:這個參數代表SIGSTOP信號,相當於在終端輸入Ctrl+Z組合鍵來暫停進程的運行。
8. Linux kill 命令怎麼用
Linux kill 命令用於終止進程,其用法步驟如下:
需要准備的材料分別是:電腦、linux連接工具。
1、首先連接上linux主機,進入命令行狀態。
9. 說說常用的UNIX命令
下文列出了常用的unix命令。
more less:
less的作用與more十分相似,都可以用來瀏覽文字檔案的內容,不同的是less允許使用者往回卷動以瀏覽已經看過的部份,同時因
為less並未在一開始就讀入整個檔案,因此在遇上大型檔案的開啟時,會比一般的文書編輯器(如 vi)來的快速。
unix種類[圖]
>> Linux ‖ BSD ‖ Solaris ‖ SCO ‖ HP-UX ‖ AIX ‖ AS400 ‖ Tru64 ‖ IRIX ‖ MacOsX
UNIX命令
一、UNIX命令格式
1、UNIX命令提示符
在命令行下,操作系統會顯示一提示符,提示用戶在此提示符後可以輸入一行命令。不同的Shell有不同的預設提示符:
B Shell和K Shell的預設提示符為"$";
C Shell的預設提示符為"%";
但當以root用戶登錄時,系統提示符統一預設為"#"。
用戶可以更改自己的預設Shell和提示符。
2、基本命令格式
在Shell提示符下,就可以輸入UNIX命令。UNIX命令的基本格式如下:
command 參數1 參數2 ... 參數n
UNIX命令由一個命令(command)和零到多個參數構成,命令和參數之間,以及參數與參數之間用空格隔開。UNIX的命令格式和DOS的命令格式相似,但UNIX的命令區分大小寫,且命令和參數之間必須隔開。如:對DOS來說是以下四條命令是相同的:
cd\tmp
cd \tmp
CD \tmp
cd \Tmp
對UNIX操作系統來說,改變目錄的命令也是cd命令,以下是正確的UNIX cd命令:
cd /tmp
cd /Tmp
但tmp和Tmp是兩個不同的目錄。以下兩條命令:
cd/tmp
CD /tmp
已經不是cd命令了。
3、在一行中運行多個命令
可以在一行中輸入多個命令,命令間用「;」分開,如:
mkdir tmp ; cp file1 tmp/file2 ; ls -l tmp
UNIX會順序執行以上三條命令。
4、在後台運行程序
要讓程序在後台執行,只需在命令行的最後加上「&」符號。
[例1] 在後台運行find命令,在當前目錄及其子目路下查找文件名為abc的文件。
執行命令和立即顯示的內容如下:
$ find . -name abc -print&
10722
$
...
10722表示進程號(PID)。當find命令在後台執行完後,會顯示結果。
當在後台運行命令時,最好將其輸出重定向輸出到一個文件中去,以便以後檢查。
[例2] 在後台運行find命令,在當前目錄及其子目路下查找文件名為abc的文件並將結果存到myfind文件中。
執行命令如下:
$ find . -name abc -print>;myfind&
在運行後台程序的同時可以繼續輸入命令。
5、nohup命令
當終端退出後,由該終端啟動的後台程序自動退出。要想終端退出後程序不停止運行,則要用nohup命令啟動後台程序。如對於例2的命令加入nohup後變為:
$ nohup find . -name abc -print>;myfind&
二、特殊按鍵
在UNIX命令操作中有一些特殊鍵,列表如下:
Ctrl + d 結束鍵盤輸入或退出當前shell
Del 中斷鍵,停止當前動作回到shell
Ctrl+s 暫停屏幕輸出
Ctrl+q 繼續屏幕輸出
Ctrl+u kill鍵,刪除游標所在行的所有字元
Esc 結束當前的操作狀態(如vi)
三、UNIX常用簡單命令
下表列出了幾個簡單的UNIX命令:
解釋 UNIX命令 命令舉例
查看幫助信息 man mandate
查看日期 date date
顯示日歷 cal cal1998
顯示大寫大字 bannerbanner 「ABCD」
計算器 bc bc
修改口令 passwdpasswd
查看誰在使用系統 whowho
查看我是誰 who am iwho am i
顯示用戶信息 fingerfinger 用戶名
清除屏幕 clearclear
1、man命令 - 查看幫助信息
舉例:
查看man的使用方法: man
查看finger命令的幫助信息: man finger
2、date命令 - 顯示、修改日期和時間
顯示時間的命令如下:
date
顯示如下:
Mon Aug 17 13:43:14 NST 1998
表示NST標准時間,1998年8月17日13:43:14,星期一。
3、cal命令 - 顯示日歷
舉例:
顯示1998年全年日歷: cal 1998
顯示1998年8月日歷: cal 8 1998
4、banner命令 - 顯示大寫大字
舉例:在屏幕上用大字顯示「HUAWEI」,命令如下
banner "HUAWEI"
5、bc命令 - 簡單計算器
bc命令可以進行加、減、乘、除、求模、乘方運算,運算符分別為「+」「-」「*」「/」「%」「^」。bc使用舉例如下
bc
以後輸入算式即可,如:
1234 * 3 + 2^4
按回車顯示結果,以後等待輸入其它算式。按<Ctrl>;+d鍵退出bc。
6、passwd命令 - 修改口令
要修改自己的口令,只需運行:
passwd
以後系統會提示輸入原來口令,並輸入新口令。
7、who命令 - 查看正在使用UNIX的用戶
用法如下:
who
系統會顯示正在使用UNIX的用戶名、終端號和登錄時間。要查看使用者自己的信息,運行:
who am i
8、finger命令 - 顯示用戶信息
finger命令比who命令顯示的信息量大,功能強。基本使用方法如下:
顯示登錄信息: finger
顯示smith用戶詳細信息: finger smith
9、clear命令 - 清除屏幕
clear
四、UNIX用戶間簡單通訊命令
UNIX提供許多方式讓用戶相互通信,它允許你以文本的方式發送及接收信息。你可以傳遞信息給其他用戶、所有用戶、或自己。信息來源可以是文本文件或直接由鍵盤輸入的內容。
(一)write 命令
可使用write 實用程序向已登錄的另一個用戶發送一條報文,當對方也使用write 命令時,雙方之間就建立了通信。
當用戶使用write 命令時,就在對方用戶終端上顯示提示信息。write 命令的格式如下:
write destination-user [terminal]
其中,destination-user是你想與之通信的用戶注冊名,通常使用who 命令查看其注冊名。如果對方在多台終端上登錄,可通過用terminal 來控制write 的報文送向指定的終端。為了建立與其他用戶的雙向通話,用戶和對方每次必須執行write 命令,且必須指定注冊名。一般在使用UNIX 進行通話時,通信雙方有一些約定:用「o」 表示結束一條報文,「oo」 表示結束這次通信,用ctrl-d 退出write 命令。
[例1] UNIX上兩用戶alex 和jenny 通過write命令通信。
在alex的所在終端上(<CR>;表示回車):
$ write alex <CR>;
Hi Alex, are you there? o<CR>;
Message from Alex (tty11)[Sat Jan 5 15]….
Yes Jenny, I』m here. o<CR>;
……
Thank you ,Alex, bye! oo<CR>;
Ctrl-d
$
該例說明了使用write 命令實現Alex 和Jenny 的通信過程。首先Jenny 使用前兩行向Alex發送了一條報文,接下來的兩行是Alex 發送的報文Jenny 收到了,省略號表示他們的通信繼續。最後,Jenny 用thank you,Alex,bye!oo 告訴Alex沒有話要說了,並在下一行開始鍵入ctrl-d 來退出write 並回到shell。
(二)使用talk雙方對話
talk 命令是一個虛擬通信命令,它允許登錄雙方通過鍵盤實時對話,其格式如下:
talk user-name [terminal]〈CR〉
注意,使用talk 進行雙方對話時,雙方使用的機器體系結構必須相同。當對方給出響應的talk命令後,雙方終端上都顯示
[connect established]
時,雙方可雙工通信了。雙方可以以任意的速度從鍵盤輸入,talk 把你的輸入一行一行的顯示在你和對方的屏幕上。用<Delete>;退出talk 。
(三)使用mesg 拒絕和允許接收報文
mesg 命令允許或拒絕接收由其它終端發來的write 和talk通訊信息。mesg命令在本地終端運行,其使用格式如下:
mesg [y] [n]〈CR〉
其中,y 表示允許接收,n 表示拒絕接收。如既不給出y 也不給出n ,則報告現在的許可狀態。例:
[例1] 顯示狀態:
$mesg <CR>;
則命令的執行結果為:
is y
或 is n
[例2] 拒絕接收由其它終端發來的write和talk通訊信息:
$mesg n
$mesg
is n
(四)wall 廣播式消息傳遞
所有登錄用戶都可收到該消息。僅超級用戶使用該命令。wall命令有以下幾種格式:
# wall
# wall filename
# wall 「send a messageto all the people。」
2.4 注銷(退出UNIX系統)
在每次使用完後,一定要進行注銷,以防他人通過你的帳號進入系統,並保證系統的完整性。注銷過程如下:在UNIX提示符下,運行:
$ exit
或
$ logout
或直接按鍵:
Ctrl+d。
由於UNIX操作系統的不同,注銷的命令也可能不同。
--------------------------------------------------------------------------------
3.5 UNIX文件存取許可權
一、文件的存取許可權
UNIX文件的存取有三種許可權:
許可權 普通文件的存取許可權目錄的存取許可權
R 具有讀取文件的權利能讀取文件名稱
W 具有寫入文件的權利能建立和刪除文件,可以改變文件名
X 具有執行文件的權利能使用該目錄下的文件(如cd命令)搜索文件等
二、能夠存取文件的用戶類型
有三種類型的用戶可以存取文件:
用戶類型 說明
owner 文件的屬主(擁有者)
group 用戶組內成員
other 其他用戶(非owner和非group)
每種類型的用戶都有三種文件存取許可權:r、w、x。
三、文件存取許可權的顯示
可以通過」ls -l」命令顯示,如:
$ ls -l file1
顯示如下:
-rwxr-xr-- 2 wjm newservice 321 Oct 1709:33 file1
上行中:
第2-4字元」rwx」表示此文件屬主wjm對文件file1的權利為」可讀、可寫、可執行」;
第5-7字元」r-x」 表示此用戶組newservice內的用戶對文件file1的權利為:
」可讀、不可寫、可執行」;
第8-10字元」r--」 表示其他用戶對文件file1的權利為」可讀、不可寫、不可執行」
四、文件存取許可權的修改
用chmod命令修改文件的存取許可權,chmod命令的格式如下:
格式1:chmod symbolic_mode file…
格式2:chmod absolute_mode file…
(一)格式1:符號模式(symbolic_mode), 符號模式的命令格式如下:
chmod [who] op permision file…
who項表示用戶類型,它的內容為以下一項或多項:
U 文件屬主(user --- owner)
G 用戶組(group)
O 其他人(other)
A 所有人(all)
op項表示動作:
+ 表示要加上permission指定的權利
- 表示要取消permission指定的權利
permission項為存取許可權,它的內容為以下一項或多項:
r 表示可讀
w 表示可寫
x 表示可執行
舉例:
chmod u+w test report 屬主對test和report文件「可寫」
chmod u-x abc.c 屬主對abc.c文件不可執行
chmod u+rwx myfile1 屬主對myfile1「可讀、可寫、可執行」
chmod ugo+rwx myfile2 任何人都對myfile1「可讀、可寫、可執行」
(二)格式2:絕對模式(absolute_mode), 符號模式的命令格式如下:
chmod xyz file…
x、y、z分別是0-7的數字,分別表示屬主、用戶組、其他人對該文件的存取許可權。x、y、z的取值公式均為:
a*4 + b*2 +c
其中,
a=1分別表示可讀,a=0表示不可讀;
b=1分別表示可寫,b=0表示不可寫;
c=1分別表示可執行,c=0表示不可執行;
舉例:
chmod 751 ncp 屬主對ncp擁有「可讀、可寫、可執行」的全部權利;組內成員對ncp只有「可讀、可執行」的權利;其他用戶對ncp只有「可執行」的權利。
五、改變文件屬主及文件所在組
改變文件屬主的格式如下:
chown 屬主名 文件名
必須對文件具有write權利才可改變文件的屬主。
改變文件所在組的格式如下:
chgrp 組名 文件名
必須是文件的屬主或supervisor才能改變文件組別的歸屬。
舉例:
chown wjm test1 將文件test1的屬主改為wjm
chgrp newservice test1 將文件test1的用戶組改為newservice
3.6 UNIX重定向與管道
UNIX重定向 將文件的標准輸出重新定向輸出到文件,或將數據文件作為另一程序的標准輸入內容。重定向符號如下:
< 重定向輸入
>; 重定向輸出
>;>; 重定向輸出並追加到尾部
例如:
ls -l >; file1 將ls -l命令顯示的內容存到file1中,
ls >;>; file1 將ls 命令顯示的內容附加存到file1的尾部
grep abc < file1 將file1的內容作為grep abc命令的輸入
其中,">;"和">;>;"為輸出重定向符,">;"將輸出內容存到重定向文件中,若文件存在,則先刪除原有內容;">;>;"將輸出內容存到重定向文件的尾部。
UNIX管道 將一文件的輸出作為另一文件的輸入。管道符號如下:
| 將左邊命令的輸出,作為右邊命令的輸入
例如:
ls|more 將ls的輸出作為more命令的輸入
ps -ef|grep smith ps -ef的輸出作為grep smith命令的輸入
3.7 UNIX文件系統常用命令
UNIX命令 UNIX命令舉例 類似DOS命令
顯示當前目錄 pwd pwdcd
改變目錄 cd cd/usr cd c:\usr
進入家目錄 cd cd
創建目錄 mkdirmkdir abc md abc
刪除空目錄 rmdirrmdir abc rd abc
刪除目錄及其內容 rm -rrm -r abc deltree abc
顯示目錄內容 ls lsabcls -l abc(文件長列表)ls -aabc(所有類型文件)ls -d *(不進子目錄) dir abc
顯示文本文件內容 catcat file1.c type file1.c
一次一屏顯示文本文件內容more more file1.c
拷貝文件 cp cpfile1 file2 file1 file2
移動(重命名)文件 mv mv call.test call.listmove call.tst call.lstren call.test bbb
刪除文件 rm rmcall.list delcall.lst
一、pwd命令
pwd命令用來顯示當前目錄路徑,命令如下:
pwd
二、cd命令
cd命令用於改變當前的目錄,如:
命令舉例 說明
cd /usr/smith 改變到/usr/smith目錄
cd ../wjm 改變到父目錄下的wjm子目錄
cd exam1 改變到當前目錄下的exam1子目錄
cd 改變到家目錄
不帶參數的cd命令表示進入家目錄,這點與DOS有本質區別。
三、rm命令
rm命令可以刪除文件及目錄,舉例如下:
命令舉例 說明
rm file2 刪除當前目錄下的文件file2
rm file* 刪除當前目錄下以file開頭的文件
rm -r /usr/wjm/exam2 刪除目錄/usr/wjm/exam2及其內容
四、ls命令
ls命令可以顯示目錄內容,命令格式如下:
ls -選項 文件名
其中的常用選項說明如下:
-l 長列表顯示目錄內容
-a 顯示所有類型文件,包括隱含文件
-d 如果顯示內容包含目錄名,則只顯示目錄名字不顯示目錄內容
命令舉例如下:
命令舉例 說明
ls 顯示當前目錄內容
ls file* 顯示除當前目錄下以file開頭的文件
ls -l /usr/wjm/exam2 長列表顯示目錄/usr/wjm/exam2內容
ls -adl 顯示當前目錄內容(同時帶-l、-d、-a參數)
[注] 」ls -l」命令顯示格式如下:
drwxrwxr-x 2 smith group 48 Jan 05 1998 john
-rwxr-xr-- 1 wjm newservice 321 Oct 17 09:33 file2
上面每行中:
第一列:
第1個字元表示文件的類型(d表示目錄,-表示普通文件);
第2-4字元表示文件屬主對此文件的訪問許可權(如:「rwx」和「rwx」);
第5-7字元表示用戶組對此文件的訪問許可權(如:「rwx」和「r-x」);
第8-10字元表示其他用戶對此文件的訪問許可權(如:「r-x」和「r--」);
其中,訪問許可權用三個字元表示,順序是「rwx」,「r」表示可讀、「w」表示
可寫、「x」表示可執行。若某項禁止訪問則為「-」,如:「r-x」表示可讀、
不可寫、可執行;
第二列:此文件的鏈接數(如:2和1);
第三列:此文件的屬主名(如:smith和wjm);
第四列:用戶組名(如:group和newservice);
第五列:文件所佔位元組數(如:48和321);
第六至八列:最後修改的日期和時間(如:「Jan 05 1998」和「Oct 17 09:33」);
第九列:文件名(如:john和file2)。
五、mkdir、rmdir、cat、more、cp、mv命令
這些命令和DOS的相應命令功能和用法基本一致,它們和DOS命令的對應關系如下:
UNIX命令 DOS命令
mkdir mkdir或md
rmdir rmdir或rd
cat type
more more
cp
mv move或ren
本文來自CSDN博客:http://blog.csdn.net/chinayuan/archive/2008/10/14/3072562.aspx
10. unix kill -9 與kill 有什麼區別
區別:
1、kill -9 id:一般不加參數kill是使用15來殺,這相當於正常停止進程,停止進程的時候會釋放進程所佔用的資源;他們的區別就好比電腦關機中的軟關機(通過「開始」菜單選擇「關機」)與硬關機(直接切斷電源),雖然都能關機,但是程序所作的處理是不一樣的。
2、kill - 9 表示強制殺死該進程;而 kill 則有局限性,例如後台進程,守護進程等;
3、執行kill命令,系統會發送一個SIGTERM信號給對應的程序。SIGTERM多半是會被阻塞的。kill -9命令,系統給對應程序發送的信號是SIGKILL,即exit。exit信號不會被系統阻塞,所以kill -9能順利殺掉進程。
(10)unixkill命令詳解擴展閱讀:
UNIX操作系統(尤尼斯),是一個強大的多用戶、多任務操作系統,支持多種處理器架構,按照操作系統的分類,屬於分時操作系統,最早由KenThompson、Dennis Ritchie和Douglas McIlroy於1969年在AT&T的貝爾實驗室開發。
目前它的商標權由國際開放標准組織所擁有,只有符合單一UNIX規范的UNIX系統才能使用UNIX這個名稱,否則只能稱為類UNIX(UNIX-like)。
UNIX用戶協會最早從20世紀80年代開始標准化工作,1984年頒布了試用標准。後來IEEE為此制定了POSIX標准(即IEEE1003標准)國際標准名稱為ISO/IEC9945.它通過一組最小的功能定義了在UNIX操作系統和應用程序之間兼容的語言介面。
POSIX是由Richard Stallman 應IEEE的要求而提議的一個易於記憶的名稱,含義是Portable OPerating System Interface(可移植操作系統介面) ,而X表明其API的傳承。