vim和bash
Vim程序編輯器
基本上vi共分為三種模式,分別是一般指令模式、編輯模式與指令列命令模式
一般指令模式:打開一個文件就進去了,他可以刪除,復制,粘貼等操作,但不能編輯。光標到最後一行在按wq保存。
vim 文件名(不管文件存不存在,都可以打開)
編輯模式:按下任意鍵進去編輯模式,會到一般模式按esc
命令行模式:按: / ?任意一個都可以到最後一行。然後就可以輸入命令。
按下crte+z 可以退出vim程序編輯器
Kill -9 % 1 這個命令是可以模擬短線停止vim工作的命令。
Vim可以多人編寫。
如果vim不正常結束的話可以按r來保護你未保存的工作,但是等你結束後還要刪除你原來不正常結束的工作。
[O]pen Read-Only:打開此檔案成為只讀。
(R)ecover:就是載入暫存檔的內容,用在你要救回之前未儲存的工作。
(D)elete it:刪除文檔
(Q)uit:按下q就離開vim
(A)bort:忽略這個編輯行為,與quit差不多
記住按鍵說明:
塊選擇:
v 字元選擇,會將遊標經過的地方反白選擇!
V 列選擇,會將遊標經過的列反白選擇!
[Ctrl]+v 區塊選擇,可以用長方形的方式選擇資料
y 將反白的地方復制起來
d 將反白的地方刪除掉
p 將剛剛復制的區塊,在遊標所在處貼上
多文件編輯
:n 編輯下一個檔案
:N 編輯上一個檔案
:files 列出目前這個vim 的開啟的所有檔案
1透過vim hosts /etc/hosts指令來使用一個vim開啟兩個檔案;
2在vim 中先使用 :files 文件數據。
3在vim 的環境下輸入:n 會來到第二個編輯的檔案,亦即/etc/hosts 內;
4在/etc/hosts 下按 G 到最後一列,再輸入『 p 』貼上;
5按下多次的 u 來還原原本的檔案資料;
6最終按下 :q 來離開vim!
多窗口功能
在指令列模式輸入:sp 文件名字 即可
ctrl+w+↑及ctrl+w+↓就可以在兩個窗口上切換。
BASH
BASH
命令行如果太長可以(\)來說明,全局變量=環境變量,自定義變量=局部變量
echo命令用於在shell中打印shell變量的值,或者直接輸出指定的字符串,是變量的顯示 命令行 echo $變量名稱
命令別名:alias {“別名”=‘命令 參數’}例如講ls –al | more的別名改為lm
alias lm=‘ls –al | more’。去掉別名就是:unalias lm
Type:
他是用來顯示指定命令的類型,判斷給出的指令是內部指令還是外部指令。
-p:如果給出的指令為外部指令,則顯示其絕對路徑;
如何設置變量的內容
echo ${myname}
空行
myname=變量名稱的內容
echo ${myname}
結果就是顯示你輸入的變量名稱
在shell中,一個變量名稱沒有被設置的話,默認的內容是空
1變量與變量內容以一個等號=來連結,如下所示:
myname=VBird
2等號兩邊不能直接接空白,如下所示為錯誤:
myname = VBird或myname=VBird Tsai
3變量名稱只能是英文字母與數字,但是開頭不能是數字,如下為錯誤:
2myname=VBird
4變量內容若有空白可使用雙引號"或單引號‘將變量內容結合起來,但
雙引號內的特殊字元如$等,可以保有原本的特性,如下所示:
var="lang is $LANG"則echo $var可得lang is zh_TW.UTF-8
單引號內的特殊字元則僅為純文字,如下所示:
var=‘lang is $LANG‘則echo $var可得lang is $LANG
5 可以用/來代替特殊符號
6若該變量為擴增變量內容時,則可用"$變量名稱"或${變量}累加內容,如下所示:
PATH="$PATH":/home/bin或PATH=${PATH} :/home/bin
比如讓name的內容多出 yes可以:
name=${name}yes
7若該變量需要在其他子程序執行,則需要以export來使自定義變量變成環境變量:
export PATH
例如:我想要name=tian在下一個shell程序中運行。
name=tian
bash
echo $tian
exit
export tian
bash
echo $name
exit
8取消變量的方法為使用unset:unset變量名稱,例如取消myname的設定:
unset myname
環境變量的功能
env可以列出環境變量和常見環境變量說明
RANDOM:變量($RANDOM),在BASH的環境下, RANDOM介於0~32767之間,echo $RANDOM時,系統就會主動的隨機取出一個介於0~32767的數值。
Declare –I number=$RANDOM*10/32767;echo $number
set可以查看所有的變量。
PS1(數字1):就是命令提示,執行某個指令後,最後要再次出現提示時,就會主動去讀取這個變量值了。PS1的默認指令是[\u@\h \W]\$
$:(關於本shell 的PID),是個變量。想要知道我們的shell 的PID ,就可以用:echo $$ ,出現的數字就是你的PID 號碼。
?:問號是特殊的變量,他是上一個執行的指令所回傳的值。當執行指令時,指令都會回傳一個代碼。如果成功的執行該指令,則會回傳一個0值,如果執行過程發生錯誤,就會回傳錯誤代碼。但是(?)只和上一個命令有關
export:自訂變量轉成環境變量
export是自定義變量轉換成為環境變量的命令。
命令行:export 變量名稱
變量鍵盤讀取、數組與聲明:read,array,declare。
read 後面直接接變量名稱,下面會出現一個空白行讓你輸入,輸入的就轉化問變量內容了。加上-t可以設置空白行存在的時間,不設置就默認30s。加上-t,就會有提示出現
read [-pt] 變量名稱
p:後面可以接提示符
t:後面可以接等待的秒數
declare/typeset是聲明變量的類型,後面直接加變量會吧所有的變量名稱於內容顯示出來。
Declare [-aixr] 變量名稱
-a :將後面名為變量定義成為陣列(array) 類型
-i :將後面變量定義成為整數數字(integer) 類型
-x :用法與export 一樣,就是將變量變成環境變量;
-r :將變量設定成為readonly 類型,不可被更改內容,也不能重設。
例如:
sum=100+500
echo $sum(×)
Declare –I sum=100+500
echo $sum (√)
array是變量類型,建議直接以$數組來讀取。
Ulimit是文件系統及程序的限制關系
Ulimit [-SHacdfltu] 數值
-H :嚴格的設定,必定不能超過這個設定的數值;
-S :soft limit ,警告的設定,可以超過這個設定值,但是若超過則有警告訊息。大於-S但小於-H就會警告
-a :後面不接任何選項與參數,可列出所有的限制額度;
-c :當某些程式發生錯誤時,系統可能會將該程式在記憶體中的資訊寫成檔案(除錯用),
這種檔案就被稱為核心檔案(core file)。此為限制每個核心檔案的最大容量。
-f :此shell 可以建立的最大檔案容量(一般可能設定為2GB)單位為Kb
-d :程序可使用的最大斷裂內存(segment)容量;
-l :可用於鎖定(lock) 的內存量
-t :可使用的最大CPU 時間(單位為秒)
-u :單一使用者可以使用的最大進程(process)數量。
變量內容的刪除、替換於代替
刪除命令:${變量名稱#/*想要刪除的部分}
$是關鍵字,用在刪除模式
#是代表從變量的最前面開始想右刪除,切刪除最短(第一個/與第二個/之間的數據)的那個。
但是在PATH變量中,目錄用:隔開,所以刪除的就是(/)和(:)中間的數據。(如果是兩個#是話,就是刪除最長(第一個/與最後一個/之間的數據)的那個)。
%是代表從變量最後面開始向左刪除。用法和#一樣
替代命令:echo ${變量名稱/想要被替代的變量內容/替代的變量}-----只有第一個會被替代
如果是兩個//就是所符合的內容都會被替代:echo ${變量名稱//想要被替代的變量內容/替代的變量}。---------------------所有的都會被替代
例如想要把path變量的sbin代替稱大寫的SBIN。
(1)(/)
echo ${path/sbin/SBIN}
/usr/local/ SBIN :/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin
(2)(//)
echo ${path//sbin/SBIN}
/usr/local/bin:/usr/bin:/usr/local/ SBIN :/usr/ SBIN :/home/dmtsai/.local/bin :/home/dmtsai/bin
測試變量是否存在:新變量=${就變量-變量的內容}
例如要判斷test這個變量是否存在,若不存在就給予test的內容為root
echo ${test }
(出現一行空白,所以test可能不存在,也可能是空字串)
test=${test-root}
echo ${test}
root
命令別名:alias,unalias
Alias “別名=‘命令參數
比如吧lm當做ls –l | more的命令別名
alias “lm”=’la –l | more’
unalias就是取消命令別名的,直接在後面加命令別名就可以
例如取消上面的命令別名
unalias lm
歷史命令(history)
-----(histfiles也就是保存歷史命令的文件)
n :數字,列出最近的n個命令列表的意思!
-c :刪除歷史命令
-a :將目前新增的history 指令新增入histfiles 中
-r :將histfiles 的內容讀到目前這個shell 的history 記憶中;
-w :將目前的history 記憶內容寫入histfiles 中!
Bash的登錄與歡迎信息:/etc/issue /etc/motd
/etc/issue 是記錄登錄界面上幾行提示字符串的地方。
cat /etc/issue 可以查看提示字符串。
想要讓使用者登入後取得一些訊息,直接vim進去/etc/motd裏,再輸入你想發的訊息。
bash的環境配置文件
vim和bash