1. 程式人生 > 其它 >Linux常用指令和基礎

Linux常用指令和基礎

1.Linux前身Unix。1970年Unix元年。Linux時間戳:1970年0點0分0秒開始的秒數。 2.GNU計劃。開源計劃。GNU/Linux。GCC(GNU Compile Collection) 3.Linux分支:Ubuntu,Debian,Centos等。 4.關機。
# shutdown -r             重啟
# shutdown -h now         馬上關機
# shutdown -h 10          10分鐘後關機

 

5.檔案系統。
Bin:              binary                   二進位制檔案,檔案都可以執行。
Dev:              device                   外接裝置。需要掛載(類似Windows分配碟符)後才能使用這些外接裝置。
Etc:              et cetera                配置檔案。
Home:             home                     除root外其他使用者的家目錄。(類似Windows下的User/使用者目錄)
Proc:             process                  程序。
Root:             root                     root的home目錄。
Sbin:             super binary             二進位制檔案。管理員執行。
Tmp:              temporary                臨時檔案。
Usr:              user                     使用者安裝的軟體。(類似Windows的program files)
Var:              variable                 日誌檔案。
Mnt:              mount                    掛載檔案。
Lib               library                  庫檔案。

  

6.路徑。
  • 相對路徑:相對當前工作目錄的路徑。
  • 絕對路徑:從根目錄開始的路徑。
./                  當前目錄
../                 上一級目錄
/                   根目錄
~                   當用戶的家目錄

  

7.基礎命令
# ls                     list                          列出當前工作目錄下的所有資料夾和檔案的名稱。
# ls  [-l]  路徑         [-list]                       以詳細列表形式列出所有資料夾和檔案。
# ls  [-l]  路徑         [-all]                        列出所有檔案和資料夾。包括隱藏檔案。隱藏檔案以.開頭。(e.g.: .bashrc)
 
-rwxrwxrwx 1  root root 1234  3月 24 22:24  hello.cpp       
drwxrwx--- 10 root root 48899 4月 12 14:44  code
-                        檔案
d                        資料夾
rwx-                     讀/寫/可執行/無許可權
rwx/rwx/rwx              檔案擁有者/同組使用者/其他組使用者的許可權
 
# pwd                            print work dir                 當前工作目錄
# cd                             change dir                     切換目錄
# mkdir 路徑                     make dir                        建立目錄
# mkdir [-p] 路徑                [-p]                            多層目錄建立過程中,對於不存在的目錄自動建立
# touch 路徑                                                     建立檔案
# cp 源路徑 目標路徑              copy                             複製檔案
# cp [-r] 源路徑 目標路徑         [-recursive]                     遞迴複製資料夾
# mv 源路徑 目標路徑              move                             移動/重新命名
# mv [-r] 源路徑 目標路徑         [-recursive]                     遞迴移動/重新命名資料夾
# rm 路徑                        remove                          刪除檔案
# rm [-r] 路徑                   [-recursive]                    遞迴刪除資料夾
# rm [-f] 路徑                   [-force]                        強制刪除,不提示刪除警告
正則表示式,萬用字元*匹配所有檔案
# vim 路徑                                                       開啟並編輯檔案(可以存在/不存在)
# cat 路徑                       concatenate                     在終端檢視檔案
# cat 路徑1 路徑2 > 新路徑        concatenate                      合併檔案內容並儲存成新檔案

 

8.輸出重定向。 一般命令的輸出都會顯示在終端中,有些時候需要將一些命令的執行結果儲存到檔案中進行後續的分析統計。
>                               覆蓋輸出,覆蓋掉原檔案(如果存在)的內容(如果檔案不存在,會自動建立新的檔案)
>>                              追加輸出,不會覆蓋原檔案的內容

  

9.進階指令
# df                            disk free                       檢視磁碟空間
# df [-h]                       [-human-readable]               人類可讀格式檢視磁碟空間             
# free [-bkmgh]                 [-Byte/KB/MB/GB/human-readable] 以Byte/KB/MB/GB/合適單位顯示記憶體使用情況
# free [-s]                     [-second]                       <間隔秒數>持續觀察記憶體使用狀況
# head [-n] 檔案                [-number]                       在終端顯示檔案前n行。預設顯示前10行
# tail [-n] 檔案                [-number]                       在終端顯示檔案後n行。預設顯示後10行
# tail [-f] 檔案                [-for]                          迴圈讀取檔案末尾的內容,跟蹤檔案增長情況。該命令一般用於檢視系統的日誌
# less 檔案                                                     檢視檔案
# less [+n] 檔案                [+number]                       從number行開始檢視檔案
輔助功能鍵:
Q 退出less 命令
空格鍵 滾動一頁
b(back) 向上翻一頁
/字串:向下搜尋"字串"的功能
?字串:向上搜尋"字串"的功能
# more 檔案                                                      檢視檔案
# wc [-lwc]                    [-line/word/char]                統計文件的行數/單詞數/位元組數
# date                                                          顯示和設定系統時間日期
格式:
一個加號後接數個標記
標記:
%c : 直接顯示日期與時間
%D : 直接顯示日期 (mm/dd/yy)
%T : 直接顯示時間 (24 小時制)
%H : 小時(00..23)
%M : 分鐘(00..59)
%S : 秒(00..61)
%Y : 完整年份 (0000..9999)
%m : 月份 (01..12)
%d : 日 (01..31)
e.g.:
# date
> 三 5月 12 14:08:12 CST 2010
# date '+%c' 
> 2010年05月12日 星期三 14時09分02秒
# date '+%D'      //顯示完整的日期
> 05/12/10
# date '+%T'      //顯示時間
> 14:09:31
 
# cal [-13y]                   calendar [-1/3/year]             檢視當前月/前中後月/某年的日曆                                   
# clear                                                         清屏
Swap磁碟:用於臨時記憶體,當系統真實記憶體不夠時可以臨時使用磁碟空間來充當記憶體。
10.管道。用於“過濾”,“特殊”,“擴充套件處理”。配合指令使用,實現相關功能。 以管道作為分界線,前面的指令有個輸出,後面的指令需要先輸入,然後再過濾,最後再輸出,通俗的講管道前面指令的輸出就是後面指令的輸入。
grep 過濾,查詢內容包含指定的字串的檔案
e.g.:
# ls / | grep y                通過管道查詢根目錄下包含"y"字母的檔名稱
# ls / | wc -l                 通過管道查詢根目錄下檔案個數
11.高階指令
# hostname                                                      操作(讀取、設定等)伺服器主機名
# hostname [-f]                 [-fqdn]                         顯示主機完全格式的域名
# id [-g] [username]            [-group]                        顯示使用者及所屬群組的ID
# whoami                                                        顯示當前登入的使用者名稱,一般用於shell指令碼用於獲取當前操作的使用者名稱記錄日誌
# ps [-ef]                  process status [-ef]                顯示全部的程序[-e]的全部的列(全欄位)[-f],類似於 windows 的工作管理員 
# ps -u username                [-user]                         顯示指定使用者的程序資訊
# ps [-ef] | grep 程序關鍵字                                     使用grep過濾查詢指定格式的程序
屬性:
UID:user id
PID: process id
PPID: parent process id (父程序)                     
C: cpu occupation rate
STIME: start time
TTY: 終端裝置,“?”表示該程序不是由終端裝置發起
TIME:程序的執行時間
CMD:command(所執行的指令)
 
# top                                                              檢視伺服器的程序佔的資源,q鍵退出
屬性:
PR:pagerank 優先順序
VIRT:虛擬記憶體
RES:常駐記憶體
SHR:共享記憶體
s:程序的狀態(S:睡眠,R:執行)
%CPU:cpu佔用率
%MEM:記憶體佔用率
快捷鍵:
M:memory,按記憶體降序排列
P:cpu,按CPU佔用率降序排列
1:伺服器包含多個CPU時,檢視各個CPU的詳細資訊
 
# du [-sh]               disk usage [-summarize/human-readable]    檢視目錄或檔案的大小,顯示總計
# du [-max-depth=<目錄層數>]                                        超過指定層數的目錄後,予以忽略
# find 路徑 [-name] 名字                                            在指定目錄下查詢檔名
# find 路徑 [-type] f/d             file/dir                        在指定目錄下查詢一般檔案[f]或者資料夾[d]
# find 路徑 [-option] -exec 指令 {} \;                              對find指令的結果執行新的指令,功能類似管道?
e.g.: 
# find . -type f -perm 644 -exec ls -l {} \;                       查詢當前目錄中檔案屬主具有讀、寫許可權,並且檔案所屬組的使用者和其他使用者具有讀許可權的檔案
 
# find 路徑 [-option] | grep 關鍵字                                 使用管道功能對find結果執行新的指令
e.g.:
# find . -type f | wc -l;                                          檢視當前目錄中一般檔案並統計個數
 
# service 服務名 [start/stop/restart]                               控制一些軟體的服務啟動/停止/重啟
# kill 程序pid                                                      根據程序id殺死程序
# killall 程序名稱                                                  殺死程序
# ifconfig                                                         顯示網路裝置資訊
# reboot                                                           重啟
# shutdown                                                         關機
# uname [-a]                   [-all]                              檢視作業系統資訊(型別,主機名,核心版本,釋出時間)
# netstat [-tnlp]              [-tcp/numeric/listening/programs]   檢視網路狀態
選項說明:
-a 所有的socket
-t 顯示TCP傳輸協議的連線
-n 直接使用IP地址,而不通過域名伺服器
-l 顯示狀態為listening的伺服器的Socket
-p 顯示正在使用Socket的程式識別碼pid和程式名稱
 
# man 指令                        manual                            手冊,按鍵q退出                        
12.在命令列中快速刪除游標前後的內容。前:ctrl+u,後:ctrl+k。 13.Vim在命令模式的快捷鍵。
行首:                $                                   shift+6
行尾:                ^                                   shift+4
首行:                gg 或 :0
尾行:                G  或 :$
向上翻屏:            ctrl+b
向下翻屏:            ctrl+f
複製行:              yy  / 數字yy     
貼上:                p
剪下/刪除:           dd  / 數字dd
撤銷:                :u  / u                             undo
恢復:                ctrl+r                              recover
游標移動指定行:       數字G / :行號
向上下左右移動n行:    數字↑ / 數字↓ / 數字← / 數字→

  

14.Vim末行模式操作。
查詢:       /關鍵詞   n下一個,N上一個
取消高亮:   :nohl    
替換:       %表示整個檔案
            /g表示全域性
            :s/關鍵字/新內容                                替換游標所在行符合條件的第一個關鍵字 
            :s/關鍵字/新內容/g                              替換游標所在行符合條件的所有關鍵字
            :%s/關鍵字/新內容                               替換所有行符合條件的第一個關鍵字
            :%s/關鍵字/新內容/g                             替換所有行符合條件的所有關鍵字
            :1,ns/關鍵字/新內容                             第一行到第n行
            :.,ns/關鍵字/新內容                             當前行到第n行
顯示行號:   :set nu
取消行號:   :set nonu

 

15.使用Vim開啟多個檔案,並在末行模式切換檔案。
檢視開啟的檔案:             :files                           %a 表示正在開啟的檔案 active;# 表示上一個開啟的檔案
指定檔案的名稱來切換檔案:    :open 檔名            
切換上下檔案:               :bn  /  :bp                      bn (next)切換到下一個檔案,bp(previous)切換到上一個檔案

 

16.Vim配置檔案。
~/.vimrc                   個人配置檔案
/etc/.vimrc                全域性配置檔案,當關於某項配置起衝突時,以個人配置檔案中的配置為準