linux常用命令記錄大全

Linux雖然是免費的,但它的確是一個非常優秀的操作系統,與MS-WINDOWS相比具有可靠、 穩定、速度快等優點,且擁有豐富的根據UNIX版本改進的強大功能。下面讓我們一起來學習Linux的一些主要命令。有一點一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)對大小寫是敏感的。

linux常用命令記錄大全

  sbin 系統底層命令存放目錄

  bin 一般用户常用命令目錄

一年多linux(字符界面)使用記錄大概使用了以下命令,我按照自己意思把linux(centos)命令大概分為幾種類型,有些也不是很合理的分類:

  文件用户管理

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

  改變文件所屬組

chgrp -R testgroup testdir/ 改變目錄所屬組

chown testuser

  改變文件擁有者

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 壓縮 文件名稱 -r 目錄路徑 代表壓縮目錄 -m代表刪除源文件

unzip 解壓縮 -x abc 排除abc文件外 其他都解壓

rpm -qa | grep 軟件包名稱

  查看是否安裝該軟件

rpm -ivh 軟件包名稱

安裝軟件

rpm -e 卸載軟件

make 多文件編譯

tar -zvxf

打開壓縮文件

rpm -ql | grep mysql 查找mysql已安裝的包

rpm -e 包的名字 ,強制刪除加參數 --nodeps

rpm -qa 顯示系統中所有已經安裝的rpm包

yum install 包名字 yum安裝

yum remove 包名字 yum刪除

yum list 列出當前系統中安裝的所有包

file

可以用來查看這個文件的類型

diff 這個指令可以將『兩個文件之間的差異性列出來』

patch 來進行更新,將 更新到

patch -p0 < h

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/ /home 製作一個 '/home' 目錄的完整備份

dump -1aj -f /tmp/ /home

製作一個 '/home' 目錄的交互式備份

restore -if /tmp/ 還原一個交互式備份

網絡通訊

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命令對文件系統進行檢查修理磁盤

3 建立為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功能有關的

ch

ch

ch

ch

ch

ch

system-config-keyboard

ch

ch

ch

ch

system-config-printer

system-config-printer-libs

system-config-printer-udev

ch

system-config-services-docs

ch

ch

另外還有一個服務配置工具,它的名字比較特殊,跟上面所述包名字完全不一樣,它叫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

按下數字後再按空格鍵,光標會向右移動這一行的 n 個字符。例如 20 則光標會向後面移動 20 個字符距離。

0

這是數字『 0 』:移動到這一行的最前面字符處(常用)

$

移動到這一行的最後面字符處(常用)

H

光標移動到這個屏幕的最上方那一行

M

光標移動到這個屏幕的中央那一行

L

光標移動到這個屏幕的最下方那一行

G

移動到這個文件的最後一行(常用)

nG

移動到這個文件的第 n 行。例如 20G 則會移動到這個文件的 20 行(可配合 :set nu)

n

光標向下移動 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 ]