Vim: 文字編輯器
vim 檔案名稱
vim + n(行號) 如 vim + 3 /etc/passwd 游標在第三行;
+ /word 游標在有word的行首;
Vim主要有三種模式:
命令,輸入,末行這三種模式
命令模式 —> 輸入模式
1)i I
2)a A
3)o O
4)c C
命令模式 —> 末行模式
:
在命令模式下: 游標移動:h(左), l (右); k(上), j(下)
單詞間跳轉:w 下一個單詞的詞首
e 下一個單詞的詞尾
b 前一個單詞的詞首
行首行尾間跳轉:^(非Null 字元的行首),0(Null 字元行首)
$(此行最後的字元)
句間跳轉: ) 下一句句首; ( 前一句句首
段間跳轉:} 下一段段首; { 上一段段首
行間跳轉:nG 或:n 跳到第n行; G 跳到最後一行;
1G 跳到第一行;
Ctrl+f 向下翻一屏; crtl+b 向上翻一屏 ;
Ctrl+d 向下翻半屏; ctrl+u 向上翻半屏;
編輯的命令:
x: 刪除一個字元 d dd ,dw ,de ,db ,d),d$等是刪除到游標定位的位置。刪除掉的內容不會馬上清空,而是儲存在緩衝區內的。
p: 粘貼;
y: 複製;
u: 撤銷最近一次的操作;U 撤銷上回的所有操作;ctrl+r 撤銷撤銷
. :redo 重做;
尋找並替換的命令:s///gi s 表示搜尋替換;g表示全域替換;i表示忽略大小寫
配置vi和vim
動態配置 :set (列舉一小部分重要的設定項目)或 :set all (例舉所有設定項目)
:set number 設定行號; :set autoindent(ai) 自動縮排
:set ignorecase(ic) 忽略大小寫; :set nowrap 不拆行顯示
Syntax enable on ,off ,enable,clear 文法著色。
若是取消用 :set no[] 如 :set noai
永久配置: ~/.vimrc 或者~/.exrc
要儲存這些配置,因此每次啟動編輯器時都能夠使用它們,需要把那些設定項目的命令放在~/.vimrc檔案中。如果該檔案不存在,vi和vim就會讀取較老的~/.exrc檔案。
在vi中我們還可以分屏查看,在末行模式中輸入:split,或ctrl+w,s 會水平分割螢幕;
Ctrl+w,v 會垂直分割螢幕;ctrl+w,方向鍵會在視窗切換
當我們分割的不是一個檔案而是多個檔案時:vim +o 1.diff 2.diff 水平分割2個檔案;+O 垂直分割 查看我們也可以用ctrl+w,方向鍵。
當我們用 vim 1..diff 2.diff 時 這時會先顯示1..diff 然後再末行模式輸next 會顯示2..diff;previous 會顯示1.diff ;last 顯示最後一個;first顯示第一個檔案;
退出時我們用qall 關閉全部;
什麼是進程?
進程就是被載入記憶體的一個指令集合。
在Linux系統中,觸發任何一個事件,系統都會將定義成為一個進程,並且給這個進程一個ID,稱為PID,同時根據這個進程的使用者與相關屬性關聯性,給這個PID一組有效使用權限設定。Linux核心通過進程的PID來跟蹤他的方方面面,運行資訊位於/proc目錄中,其中進程號在1——32767中產生。進程號1永遠屬於init這個進程。因為init是你啟動linux時的第一個進程。而後其他進程都是他衍生出來的,是她的子進程。子進程都是從父進程衍生出來的。我們可以用命令“pstree”來看產生的進程。
核心的幾大功能:記憶體管理,進程管理,硬體管理,cpu管理,檔案系統管理。
查看進程資訊(ps) a 包括所有終端的進程;
系統中有兩種進程:使用者進程(終端進程) ; 守護進程(在啟動Linux時都運行了)
x 顯示不包括終端進程,顯示守護進程;
u 顯示進程所有者的資訊,誰發起了這個進程。
o 顯示定製的資訊 如pid tty
-e 顯示所有資訊(=ax)
-f 顯示完整格式的資訊 如 ps -ef
Pid 進程號
Command 那個命令啟動了這個進程
%cpu cpu使用率
%men 記憶體使用量率
State 進程狀態 D(不可打斷的休眠) R(running)S(sleeping)T(stopped)X(dead)<(高優先順序進程) N(低優先順序進程)L(被鎖定在記憶體中)Z(zombie)l(多線程)+(在前台啟動並執行程式)start(進程的開始時間)
Tty
Euser effictive user name
Ruser 發起者
Vsz 佔用虛擬記憶體大小
Rss 非虛擬記憶體大小
Time 佔用cpu的累加時間
我們也可以用 ps aux | grep x 顯示特定進程。
Pgrep 支援Regex的命令
Pgrep -U root
-G student
Pgrep -l 1 ; pgrep -U root -v 反向顯示;
按確切的程式名稱:pidof 如 pidof bash
進程之間通訊的訊號;常用訊號,
訊號15, term(預設) 整潔終止
訊號9, kill 立即終止
訊號1, hup 重讀設定檔
我們可以用man 7 signal 顯示完整列表;
給進程發送訊號
按PID :kill pid 如 kill 3428
按名稱: killall comm 如 killall httpd
按模式: pkill pattern 關閉某些匹配模式的進程
調度優先性決定對CPU的使用:
優先性受進程的(Nice value)影響,這個值的範圍是-20到19之間,預設為0!值越小說明對cpu的使用越優先。
我們可以改變調度優先值:
在啟動進程時: nice -n 5 命令(如ifconfig)
在啟動後: renice 5 PID 如 renice 15 -p PID
只有根使用者才能降低nice的值(提高其優先性),普通使用者只能提高nice值。
查看nice值: ps axo pid ,nice
顯示即時的進程資訊,動態查看進程資訊的命令top
Top預設每隔5秒重新整理一次。
#top
Cpu(s)0.0%us(使用者發起的進程)0.1%sy(系統發起的進程)0.0%ni(修改nice值的百分比) 99.4%id(cpu的空閑率)0.0%wa(cpu等待)0.0%hi(硬體中斷)0.0%si(非強制中斷)0.0%st(被虛擬機器偷走的時間)
Top -b -n 2
在後台運行進程:在命令列添加一個&
暫停某個運行進程:使用ctrl+z或發送訊號17(stop)
管理後台進程和暫停進程
列舉進程的號碼和名稱:jobs jobs -l 同時也顯示進程號:-r 僅列出那些運行狀態的作業; -s 僅列出那些停止狀態的作業
在後台運行:bg %作業號碼; %可以省略
在前台運行:fg %作業號碼;
發送訊號:kill -[訊號] [%作業號碼] %不可省略
一次性運行進程使用at (用mail查看建立的進程已經完成),重複性運行使用crontab
At time 建立 使用ctrl+d結束 crontab -e
-l 列舉 crontab -l
-c 作業號碼 詳情
-d 作業號碼 刪除 crontab -r
Crontab 包括以下幾段:
Min hour day month week-day command
如 10 3,9 * * * echo “how are you!”
在每天的9:10和3:10分別發送
用crtontab編寫的檔案儲存在/var/spoo/cron/中
為了彌補crontab要24小時線上的缺點,這時使用anacron,他可以在開機後執行所沒有執行的作業。
Trap 捕捉訊號 如 trap “do not interrup me!”INT (ctrl+c)
環境變數
Path 命令搜尋路徑
聲明壞境變數:export A 或declare -x A
某些通用變數
Ps1 變數設定提示符;預設常用的逸出序列包括:
\h 主機名稱; \u 使用者名稱;\w 當前工作目錄;\$ 若是root使用者顯示#,若是普通使用者顯示$。
別名(aliase)
如 alias dir= 'ls -l'
撤銷別名 unalias 別名
如果想使用rm命令本身而不通過它的別名,需用\rm
如 alias rm=“rm -i”
\rm -r junk
登入shell和非登入shell
登入shell是某個使用者登入到系統後啟動的shell。非登入的shell是使用其他方式啟動的shell,可能是被使用者或程式發出bash命令後啟動。
Bash啟動任務:profile
儲存在/etc/profile檔案(全域)和~/.bash_profile檔案(使用者)中
只為登入shell運行。
用於設定環境變數,運行命令(如郵件檢查程式指令碼)
/etc/profile shell指令碼是登入shell啟動後啟動並執行第一個啟動指令碼,它只為登入的shell運行;非登入shell不會引用這個指令碼。
登入shell 首先調用/etc/profile這個檔案,該檔案調用/etc/profile.d。然後,~/.bash_profile這個檔案被調用。
Bash 啟動任務:bashrc
儲存在/etc/bashrc檔案(全域)和~/.bashrc檔案(使用者)中
為所有shell運行
用於設定本地變數,定義別名。
Bash退出任務
儲存在~/.bash_logout檔案中(使用者)
在退出登入shell時運行
用於建立自動備份,清除臨時檔案。