十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
在linux中用vi編輯和修改文件配置中沒有彩色顯示文件的內(nèi)容,特別一些關(guān)鍵字不能彩色顯示,給我們配置服務(wù)過程中造成極大的不方便?!酒鋵嵵饕莢i本身不帶顏色的,vim帶顏色】下面給出一種解決的方法。
創(chuàng)新互聯(lián)建站主要企業(yè)基礎(chǔ)官網(wǎng)建設(shè),電商平臺建設(shè),移動手機平臺,小程序開發(fā)等一系列專為中小企業(yè)按需網(wǎng)站制作產(chǎn)品體系;應(yīng)對中小企業(yè)在互聯(lián)網(wǎng)運營的各種問題,為中小企業(yè)在互聯(lián)網(wǎng)的運營中保駕護航。
Vi編輯器代碼高亮設(shè)置
1、檢查是否開啟高亮顯示,一般默認是開啟的。
2、修改 #vi /etc/bashrc 在最后面加入
alias vi=vim
然后wq保存退出。
這樣在shell里面敲入vi時候就自動打開vim了(vim是vi improve的簡稱)
3、修改 #vi /etc/vimrc 在如下語句中加入“syntax on ”,之后重啟vi或者重啟電腦,就可以開啟高亮顯示了。
bash/shell Code復(fù)制內(nèi)容到剪貼板
if t_Co 2 || has("gui_running")
syntax on
set hlsearch
endif
注意:如果有的話則不必再添加。
在Linux系統(tǒng)中,我們經(jīng)常會使用vi或vim命令,來操作文本,有時候,我們的腳本文件出了錯誤,會拋出一個帶行號的異常,然后我們根據(jù)提示,重新打開,我們的源碼進行查看,而這時候,如果你的vim沒有設(shè)置顯示行號功能,我們查找出問題的一行的代碼,則非常不方便。
設(shè)置Vim編輯器永久顯示行號
修改 /etc/vimrc 文件,在文件末尾添加如下兩行設(shè)置命令:
復(fù)制代碼
代碼如下:
set nu
set tabstop=4
注:set nu #顯示行號 set tabstop=4 #設(shè)置縮進
Linux命令分為內(nèi)部命令(shell自帶的命令)和外部命令(不是shell自帶的命令,由用戶安裝),怎么鑒別是內(nèi)部命令和外部命令呢?可以通過type命令來鑒別
什么是shell呢?shell是一個程序,常用的有bash shell,平時我們通過用戶名和密碼登錄到linux,其實就是登錄到bash shell程序,通過bash shell來操作linux內(nèi)核
命令執(zhí)行流程
那豈不是說使用外部命令效率會很慢嗎?
其實一點都不慢,它會去PATH環(huán)境變量設(shè)置的一堆目錄中查找
cd is a shell builtin 表示內(nèi)部命令
ifconfig is hashed (/usr/sbin/ifconfig) 表示外部命令
cd命令切換文件夾
現(xiàn)在我們cd /usr/sbin
通過cat命令查看文件內(nèi)容
通過cat ifconfig來查看ifconfig,發(fā)現(xiàn)是亂碼文件
file命令查看文件類型
輸入file ifconfig
從輸出信息可以看出它是一個二進制可執(zhí)行文件
whereis命令查看文件位置
find / -name jdk
echo命令用戶打印信息,相當于java中的system.out.println
可以使用回車查看下一行、空格查看下一頁、q退出
一般使用man查看外部命令,help查看內(nèi)部命令
查看linux下的應(yīng)用和應(yīng)用的進程號
當我們在這個窗口中輸入kill -9 1593的話,另外一個正在編輯文件的進程就會退出
在前面我們已經(jīng)講過,bash shell程序在執(zhí)行命令的一個過程及原理,對于外部命令,它會去PATH這個環(huán)境變量中查找執(zhí)行命令所在的路徑,當然在去PATH中尋找之前會先去hash表中查找這個命令有沒有執(zhí)行過,執(zhí)行過的話會記錄在hash表中,則此次查找只需從hash表中就可以很方便的找到
查看分區(qū)信息 -h 表示文件大小后面會顯示文件大小
查看文件的使用情況
使用man ls 查看ls命令的相關(guān)介紹
-a:可以查看隱藏文件
-l:以長列表的形式展示文件列表信息
第一位 -:表示文件,d表示文件夾,b表示塊設(shè)備文件,c表示字符設(shè)備文件,p表示命令管道文件,s表示套接字文件, 從第二位開始往后數(shù)九位表示屬主權(quán)限(每三位一組 rwx:讀、寫、執(zhí)行),第11位表示的點表示分隔符,點后面的數(shù)字表示文件有幾個硬連接,第一個root代表屬主名,第二個root代表這個第一個root所在的組織,接下來的5表示文件大小,5后面的日期表示文件最后一次修改的時間, 1.txt代表的文件或文件夾的名稱
小結(jié):
切換文件目錄
cd 文件路徑
cd:切換到家目錄
cd ~:回到家目錄(也就是家目錄)
cd ..:回到上一級目錄
創(chuàng)建目錄
mkdir 目錄名
mkdir -p 目錄名,級聯(lián)創(chuàng)建目錄
cp 被拷貝的文件(可以是路徑加文件名) 拷貝到哪個位置
復(fù)制目錄使用
cp -r 被拷貝的目錄 目標位置
移動命令
mv 被移動的文件 目標位置+目標文件名
rm 文件名(此中方式的刪除需要再輸入 yes)
rm -f 文件名,無提示直接刪除
rm -rf 文件夾
ln命令默認創(chuàng)建的是硬連接
ln profile a:將a硬連接到profile文件上,他們底層共用一個文件,刪除他們之中任何一個
對另外一個沒有影響,同時你也可以使用 ll -i命令查看文件編號
ln -s profile a:將a軟連接到profile文件,當你訪問a的時候會去訪問profile,profile再訪問底層文件,當將profile刪除了之后a就無法訪問了
一致時間、創(chuàng)建新文本
touch 已存在的文件:會將文件的訪問時間、更新時間、改變時間(即上面stat中介紹的三個時間)變成一致
touch 不存在的文件:會創(chuàng)建一個新的文本
cat命令查看文件內(nèi)容
cat 1.txt:查看單個文件內(nèi)容
cat 1.txt 2.txt:查看多個文件
more 1.txt:以分頁的形式查看文件內(nèi)容,按空格:下一頁,回車:下一行(注意它不能回看,回看的話只能用鼠標回輪)
less 1.txt:使用空格下一頁, b看上一頁, 回車看下一行
注意less的話會把整個文件內(nèi)容加載到內(nèi)存,如果文件比較大的話,建議使用more命令查看
head命令默認查看文件前10行內(nèi)容, head 1.txt
head -5 1.txt:查看文件前5行的內(nèi)容
tail命令默認查看文件后10行的內(nèi)容 tail 1.txt
tail -5 1.txt:查看文件后5行內(nèi)容
tail -f 1.txt:實時查看文件增量內(nèi)容
cat b.txt | head -3:管道左邊的命令會以輸出流的形式交給管道右邊的命令,管道右邊以輸入流的形式接收并且拼到命令的右邊
注意:ls -l 不能接受前面的輸出流,這個怎么辦呢?可以通過xargs命令
vi文本編輯器末行模式的操作
set nu(number的縮寫): 設(shè)置行號
set nonu(nonumber的縮寫):取消行號
set readonly:設(shè)置為只讀
n:往下查找
N:往上查找
n:往上查找
N:往下查找
一般我們會在/etc/profile文件中設(shè)置一些環(huán)境變量,但是在設(shè)置的時候可能沒有記住目錄,這時候我們可以使用如下方式
效果
格式 :s/str1/str2/gi
/ : 臨近s命令的第一個字符邊界字符,也可以是 @或#
g : 一行內(nèi)全部替換
i : 忽略大小寫
范圍
n:行號
. :當前光標行
+n :偏移n行
-3
%:全文
全部刪除 1,$d
刪除前三行
刪除倒數(shù)第2行
光標挪到最后一行 按下小寫的p
效果圖
正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特殊字符、及這些特定字符的組合組成一個"規(guī)則字符串",這個"規(guī)則字符串"用來表達對字符串的一種過濾邏輯。
\ :轉(zhuǎn)義字符
. :匹配任意單個字符
[1249a] :匹配中括號中任意字符
[^12] :匹配中括號中任意非1和2的字符
[a-k] :匹配中括號中任意a~k中的一個字符
^ :行首
$ :行尾
abc :單詞首尾邊界(匹配單詞abc)
| :連接操作符
(,) : 選擇操作符
\n :反向引用
? :匹配0到1次
在Linux中通過grep命令使用正則表達式來匹配信息
f :選擇顯示的列
s :不顯示沒有分隔符的行
d :自定義分隔符
n :按數(shù)值排序
r :倒序
t :自定義分隔符
K :選擇排序列
u :合并相同行
f :忽略大小寫
sed:行編輯器,以行為單位進行處理,可以將數(shù)據(jù)進行替換、刪除、新增、選取等特定工作
sed [options] 'Command' file ...
-n :靜默模式,不再默認顯示模式空間(內(nèi)存)中的內(nèi)容
-i :直接修改原文件
-e SCRIPT :可以同時執(zhí)行多個腳本
-f /PATH/TO/SED_SCRIPT
-r :表示使用擴展正則表達式
d :刪除符合條件的行
p :顯示符號條件的行
a \string :在指定的行后面追加新行,內(nèi)容為string
\n :可以用于換行
i \string :在指定的行前面添加新行,內(nèi)容為string
c :取代,c的后面可以接字符串
s /pattern/string/修飾符:查找并替換。默認只替換每行中第一次被模式匹配到的字符串
g :行內(nèi)全局替換
i :忽略字符大小寫
s///:s###,s@@@
(),\1,\2
sed "2p" ctxt
但是在執(zhí)行下面的操作的時候文本中的內(nèi)容都顯示出來了,它的原理是,打印匹配的行,以及文本中所有的內(nèi)容
注意:它刪的是內(nèi)存中的數(shù)據(jù),而不是目標文件
sed -i "3d" ctxt
它的原理是先把內(nèi)存中的第3行數(shù)據(jù)刪除,然后再把內(nèi)存中的數(shù)據(jù)寫回原文件,這時原文件中的第三行就沒有了
使用變量的形式
awk是一個強大的文本分析工具。
相對于grep的查找,sed的編輯,awk在其對數(shù)據(jù)分析并生成報告時,顯得尤為強大。
簡單來說awk就是把文件逐行的讀入,(空格,制表符)為默認分隔符將每行切片,切開的部分再進行各種分析處理。
awk -F '{pattern + action}' {filenames}
支持自定義分隔符,默認是以空格分隔的
支持正則表達式匹配
支持自定義變量,數(shù)組 a[1] a[tom] map(key)
支持內(nèi)置變量
ARGC 命令行參數(shù)個數(shù)
ARGV 命令行參數(shù)排列
ENVIRON 支持隊列中系統(tǒng)環(huán)境變量的使用
FILENAME awk瀏覽的文件名
FNR 瀏覽文件的記錄數(shù)
FS 設(shè)置輸入域分隔符,等價于命令行 -F選項
NF 瀏覽記錄的域的個數(shù)
NR 已讀的記錄數(shù)
OFS 輸出域分隔符
ORS 輸出記錄分隔符
RS 控制記錄分隔符
支持函數(shù)
print、split、substr、sub、gsub
支持流程控制語句
if、while、do/while、for、break、continue
練習(xí)題
passwd文件內(nèi)容解讀:
passwd文件中每行由7個字段組成,字段與字段之間由:分隔,第一個字段代表用戶名,第二個字段表示用戶對應(yīng)的加密后的密碼,第三個字段表示userId,第四個字段表示groupId,第五個字段表示對用戶的描述,第六個字段表示用戶的家目錄,第七個字段表示的是這個用戶默認使用的shell
其中$0表示整行
統(tǒng)計報表:合計每人1月工資, 0:manager,1:worker
將awk后面的內(nèi)容封裝到一個文件中(封裝的腳本要遵循一定的格式)
qqq文件的內(nèi)容格式
Linux系統(tǒng)下設(shè)置vi編輯器,tab鍵為4,顯示行號,方法如下:
[Ubuntu@localhost?~]$?cd?~
[Ubuntu@localhost?~]$?touch?.exrc
[Ubuntu@localhost?~]$?vi?.exrc
#然后在.exrc中寫入:
set?nu
set?tabstop=4
#保存退出,使用vi時都會顯示行號,而且tab為4。
注:
1.vi的配置文件".vimrc";
2.settabstop=4設(shè)置tab鍵為4個空格;
3.setnu顯示行號;
4.setnonu不顯示行號。
準確的說是在VIM里面
你再Linux打開一個文件,用VIM打開,想顯示出行號,就用:set nu
在輸入模式下有行號顯示,找起來方便,而且教學(xué)起來也方便。
還有直接用cat 命令看文件內(nèi)容,加上一個-n參數(shù)也是顯示行號
cat命令 – 在終端設(shè)備上顯示文件內(nèi)容 《Linux就該這么學(xué)》
head命令
head命令以行為單位,取文件的內(nèi)容,后面不接參數(shù)時默認打印前10行《Linux就該這么學(xué)》
可以顯示多個文件的頭部信息(指定前n行)
比如:
顯示文件前5個字符:
# head -c 5 test.txt
hello
如果你要的是像VIM中顯示有多少行,并在每行頭顯示行號,這個是
在命令模式下輸入":set nu"即可顯示每一行的行號
1."linuxvim顯示行號,為您提供linuxvim顯示行號圖文信息,第一使用vim,輸入vimtest.txt。
2.在命令模式下,可輸入setnu。
3.點擊回車可顯示行號。
4.然后使用vim/etc/vimrc,點擊回車打開文件,在endif下面輸入setnu。
5.第三輸入wq保存并退出。
6.即可完成。