Linux 常用命令大放送

Blue Sky ......發表於2013-09-22

sbin 系統底層命令存放目錄
bin  一般使用者常用命令目錄


檔案使用者管理
ls -lh 顯示許可權
cp   -r 複製檔案 資料夾
mkdir  test 建立資料夾
rm    -rf  刪除檔案 資料夾
mv  
源目錄 目標目錄 移動檔案或者資料夾
touch   建立空檔案
ln -s  原始檔路徑 目標檔案
cp -rf  r代表遞迴目錄 f代表不提示強制
passwd user1 修改一個使用者的口令 (只允許root執行)
usermod -g
組名 使用者名稱 改變使用者所在組
usermod -d
目錄名 使用者名稱 改變使用者登入初始 所在目錄
useradd 新增使用者
useradd -g 組名 使用者名稱
userdel 刪除使用者 -r
groupadd groupname 組新增
groupdel groupname 組刪除
chmod 許可權編號 使用者名稱
chgrp testgroup test3.txt 改變檔案所屬組
chgrp -R testgroup testdir/ 改變目錄所屬組
chown testuser test.txt 改變檔案擁有者
chmod a+x  改變檔案許可權 可執行
chattr 改變檔案的特殊屬性
chattr +a file1 只允許以追加方式讀寫檔案
lsattr file 顯示檔案的特殊屬性!
umask 改變預設的建立檔案或目錄時的屬性
cat  file 由第一行開始顯示檔案內容
tac  file 從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫!
more file   一頁一頁的顯示檔案內容
less file 與 more 類似,但是比 more 更好的是,他可以往前翻頁!
head file 只看頭幾行
tail file 只看尾巴幾行
nl   file 顯示的時候,順道輸出 行號!
od   file 以二進位制的方式讀取檔案內容!
gzip   壓縮  zaa.zip 檔名稱     -r aa.zip 目錄路徑  代表壓縮目錄    -m代表刪除原始檔
unzip  解壓縮 -x abc 排除abc檔案外 其他都解壓
rpm -qa | grep 軟體包名稱 檢視是否安裝該軟體
rpm -ivh 軟體包名稱 安裝軟體
rpm -e 解除安裝軟體
make 多檔案編譯
tar -zvxf filename.tar 開啟壓縮檔案
rpm -ql | grep mysql 查詢mysql已安裝的包
rpm -e 包的名字 ,強制刪除加引數 --nodeps
rpm -qa 顯示系統中所有已經安裝的rpm包
yum install 包名字 yum安裝
yum remove 包名字   yum刪除
yum list 列出當前系統中安裝的所有包
file 可以用來檢視這個檔案的型別
diff 這個指令可以將『兩個檔案之間的差異性列出來』
patch 來進行更新,將 expatch.old 更新到 expatch.new
patch -p0 < expatch.patch
ldd /usr/bin/passwd 判斷某個可執行的 binary 檔案含有什麼動態函式庫
which   檢視可執行檔案的位置
whereis 檢視檔案的位置
locate  配合資料庫檢視檔案位置
vi   編輯檔案內容 通用
grep -n "關鍵字" 檔案 查詢檔案內容
find 查詢檔案

find   -size   +1000000c   -print         #查長度大於1Mb的檔案

find /home -mmin    +60     # 在/home下查60分鐘前改動過的檔案

find   /home   -size   +512k                 # 查大於512k的檔案

find    /   -mmin   -5          # 查詢在系統中最後5分鐘裡修改過的檔案
ls a*  a開頭所有
ls a?  a開頭只有兩個字元的
ls abc[1-6] 以開始abc後面1-6數字結尾的檔案
ls 》cmd  輸出資料夾內容
ls -ahl  檢視檔案所在組

磁碟管理
ls   檢視目錄
cd   進入目錄  ..代表上一級  cd直接進入工作目錄  .代表當前目錄
pwd  顯示當前目錄
df  /目錄 檢視目錄在系統分割槽掛載點
mount  /目錄 掛載目錄
umount  /目錄 解除安裝掛載點
head -n 1 /etc/issue 檢視作業系統版本
cat /proc/cpuinfo 檢視CPU資訊
hostname 檢視計算機名
lspci -tv 列出所有PCI裝置  (centos6)需要安裝 pciutils
lsusb -tv 列出所有USB裝置  (centos6)需要安裝 usbutils
lsmod 列出載入的核心模組
env 檢視環境變數
echo $path 檢視環境變數
free -m 檢視記憶體使用量和交換區使用量
du -sh <目錄名> 檢視指定目錄的大小
grep MemTotal /proc/meminfo 檢視記憶體總量
grep MemFree /proc/meminfo 檢視空閒記憶體量
uptime 檢視系統執行時間、使用者數、負載
cat /proc/loadavg 檢視系統負載
sar 來看系統的資源
du 來知道目前磁碟的檔案容量
hdparm -i /dev/hda 檢視磁碟引數(僅適用於IDE裝置)
dmesg | grep IDE 檢視啟動時IDE裝置檢測狀況
dump -0aj -f /tmp/home0.bak /home 製作一個 '/home' 目錄的完整備份
dump -1aj -f /tmp/home0.bak /home 製作一個 '/home' 目錄的互動式備份
restore -if /tmp/home0.bak 還原一個互動式備份

網路通訊
netstat -lntp  檢視所有監聽埠
netstat -antp   檢視所有已經建立的連線
netstat  -s  檢視網路統計資訊
traccroute  追蹤路由
route -n 檢視路由表
ping  檢視網路是否暢通

系統管理
chkconfig --list 列出所有系統服務
chkconfig --list | grep on 列出所有啟動的系統服務
cut -d: -f1 /etc/passwd 檢視系統所有使用者
cut -d: -f1 /etc/group 檢視系統所有組
crontab -l 檢視當前使用者的計劃任務
crontab -e  例行性工作編輯
ifconfig 檢視ip配置
kill  殺死程式    -9 強制殺死
ps -aux   檢視程式資訊
top    顯示系統重要資訊 包括記憶體 cpu 負載 登入使用者
setup 圖形化介面配置系統資訊
runlevel 顯示當前執行級別
w 檢視活動使用者
id <使用者名稱> 檢視指定使用者資訊
last 檢視使用者登入日誌
who 問問自己是誰
exit 退出當前使用者
uname -a 檢視核心/作業系統/CPU資訊
fdisk -l 檢視所有分割槽
echo $0       檢視系統當前使用者轉換後的shell
echo $shell   檢視系統預設使用shell
/etc/shells  檢視shell列表
sh  轉換sh
bash 轉換bash
redhat系統   chsh -s 轉換shell 需要登出才能轉換不同的shell
shutdown  關機相關 -h 關機 -r now  重啟
su - user 切換使用者
su 切換root
reboot 系統重啟
mount | column -t 看掛接的分割槽狀態
swapon -s 檢視所有交換分割槽
iptables -L 檢視防火牆設定
mke2fs  建立Linux系統使用的ext2檔案系統
fsck 檢查和維護不一致的檔案系統。若系統掉電或磁碟發生問題,可利用fsck命令對檔案系統進行檢查修理磁碟
mkfs.ext3  建立為ext2/ext3檔案系統
dumpe2fs 檢視特定裝置上現存的檔案系統的超級塊(super block)和塊群(blocks group)的資訊
mkswap /dev/hda3 建立一個swap檔案系統
service 服務名稱 restart stop start 服務重啟等

其他
history  檢視歷史命令
clear  清理螢幕
su  切換超級管理使用者
sudo passwd root  超級管理使用者密碼
bc  計算器
cal  日期 
date   時間  月 年

wall   傳送訊息給所有登入使用者
write 傳送訊息給某個使用者
mesg  阻擋其他使用者傳遞過來的訊息
mail  傳送郵箱給使用者
pidof : 找出某支正在執行的程式的 PID
fuser: 藉由檔案(或檔案系統)找出正在使用該檔案的程式
vmstat : 偵測系統資源變化
dmesg : 分析核心產生的資訊

------------------------------------------

下面是比較重要的命令詳解  經常用到
top、ps、setup命令詳解,vi使用

1 top命令

     top命令是Linux下常用的效能分析工具,能夠實時顯示系統中各個程式的資源佔用狀況,類似於Windows的工作管理員。下面詳細介紹它的使用方法。


top 顯示結果如下所示:

01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total,  1 running, 28 sleeping,  0 stopped,  0 zombie
Cpu(s): 0.3% user, 1.0% system, 0.0% nice, 98.7% idle, 0.0% wa, 0.0% hi, 0.0% si
Mem:   191272k total,  173656k used,   17616k free,   22052k buffers
Swap:  192772k total,       0k used,  192772k free,  123988k cached

  PID USER     PR NI VIRT RES SHR S %CPU %MEM   TIME+ COMMAND
 1379 root     16  0 7976 2456 1980 S 0.7 1.3  0:11.03 sshd
 14704 root     16  0 2128 980 796 R 0.7 0.5  0:02.72 top
    1 root     16  0 1992 632 544 S 0.0 0.3  0:00.90 init
    2 root     34 19    0   0   0 S 0.0 0.0  0:00.00 ksoftirqd/0
    3 root     RT  0    0   0   0 S 0.0 0.0  0:00.00 watchdog/0統計資訊區


前五行是系統整體的統計資訊。

第一行是任務佇列資訊 ,同uptime命令的執行結果。其內容如下:
01:06:48  當前時間
up 1:22   系統執行時間,格式為時:分
1 user   當前登入使用者數
load average: 0.06, 0.60, 0.48系統負載,即任務佇列的平均長度。
三個數值分別為1分鐘、5分鐘、15分鐘前到現在的平均值。
第二、三行為程式和CPU的資訊。當有多個CPU時,這些內容可能會超過兩行。內容如下:
Tasks: 29 total   程式總數
1 running         正在執行的程式數
28 sleeping       睡眠的程式數
0 stopped         停止的程式數
0 zombie          殭屍程式數
Cpu(s): 0.3% us   使用者空間佔用CPU百分比
1.0% sy           核心空間佔用CPU百分比
0.0% ni           使用者程式空間內改變過優先順序的程式佔用CPU百分比
98.7% id          空閒CPU百分比
0.0% wa           等待輸入輸出的CPU時間百分比
0.0% hi 
0.0% si 

最後兩行為記憶體資訊。 內容如下:
Mem: 191272k total實體記憶體總量
173656k used      使用的實體記憶體總量
17616k free       空閒記憶體總量
22052k buffers    用作核心快取的記憶體量
Swap: 192772k total交換區總量
0k used           使用的交換區總量
192772k free      空閒交換區總量
123988k cached    緩衝的交換區總量。
記憶體中的內容被換出到交換區,而後又被換入到記憶體,但使用過的交換區尚未被覆蓋,
該數值即為這些內容已存在於記憶體中的交換區的大小。
相應的記憶體再次被換出時可不必再對交換區寫入。
程式資訊區

統計資訊區域的下方顯示了各個程式的詳細資訊。首先來認識一下各列的含義。

序號  列名  含義

a    PID   程式id
b     PPID  父程式id
c     RUSER Real user name
d     UID   程式所有者的使用者id
e     USER  程式所有者的使用者名稱
f     GROUP 程式所有者的組名
g     TTY   啟動程式的終端名。不是從終端啟動的程式則顯示為?
h     PR    優先順序
i     NI    nice值。負值表示高優先順序,正值表示低優先順序
j     P     最後使用的CPU,僅在多CPU環境下有意義
k      %CPU  上次更新到現在的CPU時間佔用百分比
l     TIME  程式使用的CPU時間總計,單位秒
m     TIME+ 程式使用的CPU時間總計,單位1/100秒
n     %MEM  程式使用的實體記憶體百分比
o     VIRT  程式使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
p     SWAP  程式使用的虛擬記憶體中,被換出的大小,單位kb。
q     RES   程式使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
r     CODE  可執行程式碼佔用的實體記憶體大小,單位kb
s     DATA  可執行程式碼以外的部分(資料段+棧)佔用的實體記憶體大小,單位kb
t     SHR   共享記憶體大小,單位kb
u     nFLT  頁面錯誤次數
v     nDRT  最後一次寫入到現在,被修改過的頁面數。
w     S     程式狀態。
D=不可中斷的睡眠狀態
R=執行
S=睡眠
T=跟蹤/停止
Z=殭屍程式
x     COMMAND命令名/命令列
y     WCHAN 若該程式在睡眠,則顯示睡眠中的系統函式名
z     Flags 任務標誌,參考sched.h
 
預設情況下僅顯示比較重要的PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND列。可以通過下面的快捷鍵來更改顯示內容。
------------------------------------------


2 ps 命令說明
    ps命令就是最基本同時也是非常強大的程式檢視命令.使用該命令可以確定有哪些程式正在執行和執行的狀態、程式是否結束、程式有沒有僵死、哪些程式佔用了過多的資源等等.總之大部分資訊都是可以通過執行該命令得到的

top 顯示結果如下所示:


USER      PID       %CPU    %MEM    VSZ    RSS    TTY    STAT    START    TIME    COMMAND
root          3532    0.0    0.2    2428    452    ?    Ss    20:40    0:00    gpm -m /dev/input/mice -t imps2

    USER:說明該程式是屬於哪一個人的;
    PID:該程式的代號;
    %CPU:代表該程式使用了多少 CPU 資源;
    %MEM:代表該程式使用了多少的 RAM ;
    VSZ, RSS:佔去的 ram 的大小( bytes );
    TTY:是否為登入者執行的程式?若為 tty1-tty6 則為本機登入者,若為 pts/?? 則為遠端登入者執行的程式
    STAT:該程式的狀態,( R )為可執行的,( S )為該程式正在睡眠中,就是沒有執行了,( T )正在偵測或者是停止了,( Z )殭屍程式,就是 zombie 死掉的程式啦!需要以 kill 除去囉!
    START:該程式開始的日期;
    TIME:該程式跑了多久的時間?
    COMMAND:該程式的內容啦!
------------------------------------------

3 setup介紹
       setup是redhat系列(包括centos,fedora等)裡很好用的一個工具,不過可惜的是其它發行版裡並沒有。

為了系統的乾淨高效,安裝系統時使用centos 6最小化安裝(為了可以手工編譯一些軟體包,在安裝時選擇了馬上定製,多選擇了開發工具),裝完了配置系統時,發現沒有setup這個工 具,whereis setup ,結果是空的。yum install setup, 系統提示已經安裝了setup包。上網查,原來這個包的名字不叫setup, 而是setuptool,

yum install setuptool

不過執行這時setup只有Authentication configuration可用

防火牆的配置包叫system-config-firewall, yum安裝,自動安裝兩個依賴包:system-config-firewall-tui, system-config-firewall-base.

通過yum list system-config*查詢有好幾個相關的包,應該都是與setup功能有關的

system-config-firewall.noarch
system-config-firewall-base.noarch
system-config-firewall-tui.noarch
system-config-date.noarch
system-config-date-docs.noarch
system-config-kdump.noarch
system-config-keyboard
system-config-kickstart.noarch
system-config-language.noarch
system-config-lvm.noarch
system-config-network-tui.noarch
system-config-printer
system-config-printer-libs
system-config-printer-udev
system-config-services.noarch
system-config-services-docs
system-config-users.noarch
system-config-users-docs.noarch


另外還有一個服務配置工具,它的名字比較特殊,跟上面所述包名字完全不一樣,它叫ntsysv
執行yum install ntsysv 安裝setup的服務設定工具
不過,系統配置方面,能手工做就手工做,藉助圖形化工具不是提高水平的途徑。

setup是一個設定公用程式,提供圖形介面的操作方式。在setup中可設定7類的選項:
   1.登陸認證方式
   2.鍵盤組態設定  
   3.滑鼠組態設定  
   4.開機時所要啟動的系統服務  
   5.音效卡組態設定  
   6.時區設定
   7.X Windows組態設定

------------------------------------------


4 vi使用

      vi編輯器是所有Unix及Linux系統下標準的編輯器,它的強大不遜色於任何最新的文字編輯器,這裡只是簡單地介紹一下它的用法和一小部分指令。由於 對Unix及Linux系統的任何版本,vi編輯器是完全相同的,因此您可以在其他任何介紹vi的地方進一步瞭解它。Vi也是Linux中最基本的文字編 輯器,學會它後,您將在Linux的世界裡暢行無阻。
    一般模式: 以 vi 處理一個檔案的時後,一進入該檔案就是一般模式了。在這個模式中,你可以使用『上下左右』按鍵來移動游標,您可以使用『刪除字元』或『刪除整行』來處理檔案內容,也可以使用『複製、貼上』來處理您的檔案資料。
    編輯模式: 在一般模式中可以處理刪除、複製、貼上等等的動作,但是卻無法編輯的!要等到您按下『i, I, o, O, a, A, r, R』等字母之後才會進入編輯模式。注意了!通常在 Linux 中,按下上述的字母時,在畫面的左下方會出現『 INSERT 或 REPLACE 』的字樣,才可以輸入任何字來輸入到您的檔案中!而如果要回到一般模式時,則必須要按下『Esc』這個按鍵即可退出編輯模式。
    指令列命令模式: 在一般模式當中,輸入『 : 或 / 』就可以將游標移動到最底下那一行,在這個模式當中,可以提供您『搜尋資料』的動作,而讀取、存檔、大量取代字元、離開 vi 、顯示行號 等等的動作則是在此模式中達成的!

一般模式:     移動游標
h 或 向左方向鍵
    游標向左移動一個字元
j 或 向下方向鍵
    游標向下移動一個字元
k 或 向上方向鍵
    游標向上移動一個字元
l 或 向右方向鍵
    游標向右移動一個字元
[Ctrl] + [f]
    螢幕『向前』移動一頁(常用)
[Ctrl] + [b]
    螢幕『向後』移動一頁(常用)
[Ctrl] + [d]
    螢幕『向前』移動半頁
[Ctrl] + [u]
    螢幕『向後』移動半頁
+
    游標移動到非空格符的下一列
-
    游標移動到非空格符的上一列
n<space>
    按下數字後再按空格鍵,游標會向右移動這一行的 n 個字元。例如 20<space> 則游標會向後面移動 20 個字元距離。
0
    這是數字『 0 』:移動到這一行的最前面字元處(常用)
$
    移動到這一行的最後面字元處(常用)
H
    游標移動到這個螢幕的最上方那一行
M
    游標移動到這個螢幕的中央那一行
L
    游標移動到這個螢幕的最下方那一行
G
    移動到這個檔案的最後一行(常用)
nG
    移動到這個檔案的第 n 行。例如 20G 則會移動到這個檔案的 20 行(可配合 :set nu)
n<Enter>
    游標向下移動 n 行(常用)
一般模式:     搜尋與取代
/word
    向游標之後尋找一個字串名稱為 word 的字串。(常用)
?word
    向游標之前尋找一個字串名稱為 word 的字串。
:n1,n2s/word1/word2/g
    在第 n1 與 n2 行之間尋找 word1 這個字串,並將該字串取代為 word2 !(常用)
:1,$s/word1/word2/g
    從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 !(常用)
:1,$s/word1/word2/gc
    從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 !且在取代前顯示提示字元給使用者確認(conform)是否需要取代!(常用)
一般模式:     刪除、複製與貼上
x, X
    x 為向後刪除一個字元, X 為向前刪除一個字元(常用)
nx
    向後刪除 n 個字元
dd
    刪除遊標所在的那一整列(常用)
ndd
    刪除游標所在的向下 n 列,例如 20dd 則是刪除 20 列(常用)
d1G
    刪除遊標所在到第一行的所有資料
dG
    刪除遊標所在到最後一行的所有資料
yy
    複製遊標所在的那一行(常用)
nyy
    複製游標所在的向下 n 列,例如 20yy 則是複製 20 列(常用)
y1G
    複製遊標所在列到第一列的所有資料
yG
    複製遊標所在列到最後一列的所有資料
p, P
    p 為複製的資料在游標下一行貼上,P 則為貼在遊標上一行!(常用)
J
    將游標所在列與下一列的資料結合成同一列
c
    重複刪除多個資料,例如向下刪除 10 行,[ 10cj ]
u
    復原前一個動作。(常用)
進入編輯模式      
i, I
    插入:在目前的游標所在處插入輸入之文字,已存在的文字會向後退;(常用)
a, A
    增加:由目前游標所在的下一個字開始輸入,已存在的文字會向後退:(常用)
o, O
    插入新的一行:從游標所在的下一行枝行首開始輸入文字;(常用)
r, R
    取代:r 會取代游標所在的那一個字元;R會一直取代游標所在的文字,直到按下 ESC 為止;(常用)
Esc
    退出編輯模式,回到一般模式中(常用)
指令列命令模式      
:w
    將編輯的資料寫入硬碟檔案中(常用)
:w!
    若檔案屬性為『只讀』時,強制寫入該檔案
:q
    離開 vi (常用)
:q!
    若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。
:wq
    儲存後離開,若為 :wq! 則為強制儲存後離開(常用)
:e!
    將檔案還原到最原始的狀態!
ZZ
    若檔案沒有更動,則不儲存離開,若檔案已經經過更動,則儲存後離開!
:w [filename]
    將編輯的資料儲存成另一個檔案(類似另存新檔)
:r [filename]
    在編輯的資料中,讀入另一個檔案的資料。亦即將 『filename』這個檔案內容加到遊標所在行後面
:set nu
    顯示行號,設定之後,會在每一行的字首顯示該行的行號
:set nonu
    與 set nu 相反,為取消行號!
n1,n2 w [filename]
    將 n1 到 n2 的內容儲存成 filename 這個檔案。
:! command
    暫時離開 vi 到指令列模式下執行 command 的顯示結果!例如[ :! ls /home ]

------------------------------------------

命令檢視幫助三種方式

info command
command --help
man  command

 

轉載:http://www.iteye.com/topic/1125192