1. 程式人生 > >Linux系統部署專案常用命令(二)

Linux系統部署專案常用命令(二)

linux命令彙總:

先做幾點宣告:

(1).這些命令是在redhat linux上執行的,在IBM AIX上使用可能有些就不行;

(2).我並不會去介紹所有的命令,每個命令我也並不會去介紹所有的引數,我只介紹我用到並且是常用的;

(3).介紹不分順序,我只是對近一段時間用到的命令做一下回顧和總結;

(4).我用root使用者登入linux系統,然後在根目錄下建了一個pantp目錄,後面截圖為黑底白字的操作都是在這個目錄下進行;

(5).命令下的(1)、(2)表示該命令常用的幾種形式;

.ls---顯示當前目錄的檔案

常用的有以下兩種:

(1).ls

顯示當前目錄pantp的檔案

image

(2).ls –alt

顯示當前目錄pantp的所有檔案(包含.開頭的隱藏檔案)的詳細列表資訊,並且按時間排序

image

.hostname

(1)hostname

檢視計算機名稱

image

(2)hostname –i

檢視計算機的IP地址

image

.whoami

檢視當前登入使用者

image

.cp

複製檔案或目錄

(1)複製檔案

image

(2)複製目錄

image

.scp

遠端複製檔案或目錄(把檔案或目錄從一臺主機複製到另一臺主機) 我在虛擬機器中裝了一個linux系統,這個我沒法截圖,只把語法寫出來,這裡只把從本機複製到遠端主機列出來,另外一個從遠端主機複製到本機就不列出了;

(1)複製檔案

先切換到本機需要複製的檔案所在的目錄(當然也可以寫絕對路徑,也可以根據情況寫相對路徑)

scp 本機檔名 遠端主機登入的使用者名稱@遠端主機IP地址:遠端主機的目錄

這裡列出一個實際的例子:

image

(2)複製目錄

先切換到本機需要複製目錄的上層(當然也可以寫絕對路徑,也可以根據情況寫相對路徑)

scp  -r 本機目錄名 遠端主機登入的使用者名稱@遠端主機IP地址:遠端主機的目錄

image

.mv

移動檔案或目錄,類似windows系統中的剪下;

(1)移動檔案

把檔案old.txt移動到dir1目錄下

image

(2)移動目錄

把目錄dir3移動到dir1目錄下

image

(3)為檔案重新命名

把old.txt命名為new.txt

image

.vi

命令模式、編輯模式、底行模式

命令模式:

按esc鍵切換到命令列模式,此模式常用的就是刪除

x   刪除當前游標所在字元

dd 刪除游標所在的當前行

編輯模式:

按a、i、o進入編輯模式

a 游標會向後移動一位,在當前游標後插入

i  在當前游標前插入,當前游標所在的字元會後移

o 換一行後插入

現在按照以下步驟按照以上三個方式分別插入pantp字元:

步驟如下:

1.開啟檔案 vi new.txt

2.把游標放在第一行的第二個字元,按下字母a,然後輸入pantp

3.按esc切換到命令列模式

4.把游標放在第二行的第二個字元,按下字母i,然後輸入pantp

5.按esc切換到命令列模式

6.把游標放在第三行的第二個字元,按下字母o,然後輸入pantp

7.按esc切換到命令列模式

8. 輸入 :wq  儲存並退出

原始檔案內容如下:

image

按照上述步驟編輯以後,檔案內容如下:

image

退出及儲存

(1)切換到命令列模式

(2):q    不存檔退出vi

        :wq 儲存並退出vi

        :q!  不存檔強制退出vi

.more

分屏顯示檔案,只有檔案大小超過一定長度才有效,超過一定長度後,會顯示百分比資訊;否則此命令的效果和cat類似;

more  檔名

.cat

顯示檔案的所有內容,一次性顯示該檔案的所有內容;

cat  檔名

.tail

顯示檔案的最新內容

(1).tail –f 檔名

動態顯示檔案增長的內容;

(2).tail –1000f 檔名

動態顯示檔案增長的最後1000行的內容;

.history

(1).history

顯示所有的歷史命令

image

(2).history 2

顯示最近的兩個命令

image

.chmod

改變檔案的模式 x(執行)、w(寫)、r(讀)

搜狗截圖_2012-07-10_09-49-59

紅色部分一共有十個字元,

第一個字元表示是檔案還是目錄,d是目錄,- 是檔案

第二三四個字元分別表示當前檔案所屬使用者root的讀、寫、執行的許可權;

第五六七個字元分別表示當前檔案所屬組root的使用者讀、寫、執行的許可權;

第八九十個字元分別表示當前檔案其他組使用者的讀、寫、執行的許可權;

(1).chmod g+x 檔名

給sed.txt當前檔案所屬組使用者加上w許可權;

搜狗截圖_2012-07-10_09-57-25

(2).chmod 777 檔名

給sed.txt.cp當前檔案所屬組使用者加上w許可權;此種採用二進位制來表示,有該許可權就寫1,無就寫0,然後算出總數;

更改前:

110 100 100----->6 4 4

需要更改為:

110 110 100----->6 6 4

搜狗截圖_2012-07-10_10-03-52

.chown

改表文件或目錄的所屬使用者和所屬組;(我虛擬機器上裝的linux只有一個root使用者一個root組,我先建一個test組,並在該組下建一個test使用者,密碼也為test;新建使用者和組的操作這裡就不介紹了,作為一個開發人員這樣的操作很少)

image

(1)chown 使用者名稱 檔名/目錄

改變檔案或目錄的所屬使用者

把目錄dir1所屬使用者由root改為test

搜狗截圖_2012-07-10_18-58-25

(2).改變dir1所屬組由root改為test

搜狗截圖_2012-07-10_19-39-41

.crontab

crontab 是用來讓使用者在固定時間或固定間隔執行程式之用;

為了下面crontab命令的演示,我在pantp目錄下建一個執行指令碼,crontab.sh

image

(1).建立定時執行任務

我需要crontab.sh指令碼每隔一分鐘鍾執行一次,並把檔案輸出到pantp目錄下的log.txt

為了使此效果明顯,我把crontab.sh檔案做了一下更改,修改後的檔案為:

image

先介紹一下crontab中時程表的格式

時程表的格式如下 :
f1 f2 f3 f4 f5 program 

其中 f1 是表示分鐘(0-59),f2 表示小時(0-23),f3 表示一個月份中的第幾日(1-31),f4 表示月份(1-12),f5 表示一個星期中的第幾天(0-6 0表示星期日)。program 表示要執行的程式。   
當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程式,其餘類推    
當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推    
當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推    
當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推;

輸入crontab -e,然後輸入如下部分,輸入完成以後,按 :wq 退出;

image

(2).檢視定製任務

image

我們可以檢視log.txt檢視執行結果:

image

(3)刪除定製任務

-r 刪除當前使用者的crontab檔案

image

這個是命令慎用,這個會刪除當前使用者所有的定製任務,我們可以直接crontab –e 進入,然後把不需要的給刪除;

.sed

利用script來處理文字檔案

把sed.txt和sed.txt.cp中的Abc都替換為pantp

執行sed命令前:

image

(1)第一種方式:sed -e 's/Abc/pantp/' a.txt

-e表示命令以命令列的方式執行;引數s,表示執行替換操作,會把執行後的結果給顯示出來;

image

注意此種情況只會把執行後的結果給顯示出來,但是檔案的本身還沒變

(2)第二種情況:sed -i 's/Abc/pantp/' a.txt

引數-i,表示直接操作修改檔案,不輸出,檔案本身已經變了

image

.ssh

(1)登陸到某臺機器,預設以當前使用者登陸

image

(2)採用指定的使用者登陸到某臺機器:

搜狗截圖_2012-07-10_21-09-46

.ps

(1).ps –ef

ps

通過以上命令,我一般就是檢視某個程序是否存在,有時需要根據程序好來殺程序,這時配合kill命令使用,我一般用kill –3 程序號,用這個命令可以生成core檔案。

(2).ps –aux

aux這三個選項也會配合起來使用,不過我不常用就不總結在這裡了。

.rm

刪除檔案或目錄;

rm –rf 檔名或目錄名

.tar

(1)打tar包,把目錄a打包為a.tar

tar –cvf a.tar a

(2)解壓tar包,把a.tar包解壓

tar –xvf a.tar

.jar

(1)打包,把目錄a打包成a.jar

jar –cvf a.jar a

(2)解壓包,把a.jar解壓

jar –xvf a.jar

(3)檢視jar包中的檔案列表

jar –tvf a.jar

.grep

只介紹兩個常用的選項,c 統計資料  i 忽略大小寫

查詢檔案中某個字元出現的數量,統計的是字元出現的行數,如果要查詢的字元在一行中出現超過一次,也只會統計一次;

grep –c 字元 檔名

image

.find

常用如下:

(1)檢視某個目錄下的檔案及目錄

find system

image

(2)按檔名匹配需要的檔案

find 路徑 –name 匹配選項

image

.wc

-l  輸出當前檔案的行數

-c 輸出當前檔案的位元組數

-w 輸出當前檔案的字數

(1)wc 檔名

image

(2)配合其他命令使用,比如cat

image

.clear

清除螢幕;

.pwd

檢視當前所在的目錄;

.su

.切換到指定使用者

su – tyjk

.切換到root使用者

su

.logout/exit

退出當前會話框;

shutdown  這個命令在實際生產環境中一般查證問題不會使用;

關機:shutdown now

重啟:shutdown –r now

        reboot

add 2012/09/11

top

top命令就是linux系統中的資源管理器,可以顯示當前CPU、記憶體的使用量、剩餘量等。

uname

uname -a  檢視linux系統的版本

系統命令

# uname -a # 檢視核心/作業系統/CPU資訊
# head -n 1 /etc/issue # 檢視作業系統版本
# cat /proc/cpuinfo # 檢視CPU資訊
# hostname # 檢視計算機名
# lspci -tv # 列出所有PCI裝置
# lsusb -tv # 列出所有USB裝置
# lsmod # 列出載入的核心模組
# env # 檢視環境變數 資源
# free -m # 檢視記憶體使用量和交換區使用量
# df -h # 檢視各分割槽使用情況
# du -sh # 檢視指定目錄的大小
# grep MemTotal /proc/meminfo # 檢視記憶體總量
# grep MemFree /proc/meminfo # 檢視空閒記憶體量
# uptime # 檢視系統執行時間、使用者數、負載
# cat /proc/loadavg # 檢視系統負載 磁碟和分割槽
# mount | column -t # 檢視掛接的分割槽狀態
# fdisk -l # 檢視所有分割槽
# swapon -s # 檢視所有交換分割槽
# hdparm -i /dev/hda # 檢視磁碟引數(僅適用於IDE裝置)
# dmesg | grep IDE # 檢視啟動時IDE裝置檢測狀況 網路
# ifconfig # 檢視所有網路介面的屬性
# iptables -L # 檢視防火牆設定
# route -n # 檢視路由表
# netstat -lntp # 檢視所有監聽埠
# netstat -antp # 檢視所有已經建立的連線
# netstat -s # 檢視網路統計資訊 程序
# ps -ef # 檢視所有程序
# top # 實時顯示程序狀態 使用者
# w # 檢視活動使用者
# id # 檢視指定使用者資訊
# last # 檢視使用者登入日誌
# cut -d: -f1 /etc/passwd # 檢視系統所有使用者

# cut -d: -f1 /etc/group # 檢視系統所有組
# crontab -l # 檢視當前使用者的計劃任務 服務
# chkconfig –list # 列出所有系統服務
# chkconfig –list | grep on # 列出所有啟動的系統服務 程式
# rpm -qa # 檢視所有安裝的軟體包