linux基本命令:(其他的太多了,自己去百度吧)
在遠(yuǎn)安等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,遠(yuǎn)安網(wǎng)站建設(shè)費(fèi)用合理。
ls:
-l:顯示詳細(xì)信息
-a:顯示隱藏文件和其他所有文件(以.開頭的為隱藏文件)
-t:安時(shí)間排序
-h(huán):以KB MB 等單位顯示
-d:只列出目錄名,不列出其他內(nèi)容
-R:遞歸顯示所有目錄及子目錄
-lath:選項(xiàng)可以合并
pwd:顯示當(dāng)前所在位置
cd:轉(zhuǎn)換目錄
cd ..:返回上一級(jí)目錄
cd -:回到上一次操作的目錄
mkdir: 建目錄
-v:顯示所建目錄,相同可用{}:mkdir -v dir{1,2,3}
-p:創(chuàng)建多級(jí)目錄
rmdir:刪除空目錄
rm:刪除
-f:強(qiáng)制刪除無提示
-r:可刪除目錄
mv:移動(dòng) 重命名
touch:建立空文件
file:驗(yàn)證文件或目錄的類型
cp:復(fù)制,粘貼 (copy)改名
cp 原文件 目標(biāo)文件
-r:可復(fù)制目錄
ssh 192.168.1.33 遠(yuǎn)程登錄
跨機(jī)拷貝:scp -r /root/Server/ 192.168.1.253:/dcw
man 命令:幫助
alias:查看是否有別名
去掉別名用完整路徑
eg:
#which cp
#/bin/cp a.text b.text 或 \cp a.text b.text
或 在 /root/.bashrc 中去掉#alias cp='cp -i',后#unalias cp
查看某文件前4行內(nèi)容并顯示文件路徑和文件名
[/usr/local/nagios]#ls /etc/vsftpd/vsftpd.conf head -n 4 /etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd.conf
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
linux tee 命令詳解
功能說明:讀取標(biāo)準(zhǔn)輸入的數(shù)據(jù),并將其內(nèi)容輸出成文件。
語法:tee [-ai][--help][--version][文件...]
補(bǔ)充說明:tee指令會(huì)從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù),將其內(nèi)容輸出到標(biāo)準(zhǔn)輸出設(shè)備,同時(shí)保存成文件。
參數(shù):
-a或--append 附加到既有文件的后面,而非覆蓋它.
-i-i或--ignore-interrupts 忽略中斷信號(hào)。
--help 在線幫助。
--version 顯示版本信息。
cat /etc/sysconfig/network
-n:查看行號(hào)信息
more:空格翻頁 回車換行
less:上下鍵翻頁 可以反復(fù)看(可以回翻頁)
head:顯示前幾行
head -5 install.log 顯示前5行
tail:顯示后幾行
tail -f 動(dòng)態(tài)更新
grep:查看文件中包含關(guān)鍵字的一行
#grep --color=tty dump intstall.log 彩色顯示
正則表達(dá)式:^root 以root為開頭(^)
root$,以root結(jié)尾($)
-v:不包括的幾行(取反)
grep -n -v ^# /etc/vsftpd/vsftpd.conf
:r /root/install.log 追加讀入一個(gè)文件
:e 讀入文件
:e! 重新讀入
:q 不保存 :q!強(qiáng)制退出
:w 保存 :qw保存退出 :wq! 強(qiáng)制保存退出
在未寫入狀態(tài)時(shí):
h 左 k 上 j下 l 右
shift+4($) 光標(biāo)移到行尾 shift+6(^) 光標(biāo)移到行頭
:50 來到50行
#vim /root/install.log +50(n)來到50行
:set nu 顯示行號(hào)
:set nonu 取消行號(hào)
shift+g 來到行尾
n(無顯示)+G:直接來到n行
shift+a:自動(dòng)來到行尾輸入
:50,100 w bb.txt 保存50到100行的內(nèi)容到bb.txt中
r :替換單個(gè)字符 R:替換全行
shift+o:向上插入 o:向下插入
yy 復(fù)制 p 粘貼
(n)2yy 復(fù)制前兩行
y^:復(fù)制從光標(biāo)位置到開頭 y$:復(fù)制從光標(biāo)位置到結(jié)尾
d:剪貼一行
dd:剪貼兩行
ndd:多行
d^:剪貼到開頭 d$:剪貼到結(jié)尾
:g/^$/d 去掉空行
:g/^\s*$/d 去空格
向左移動(dòng)25個(gè)字符:25+l
:/ 查找 自上而下
:? 查找自下而上
n 下一個(gè)
替換:
:s/old/new 把舊的換為新的 單個(gè)
:s/old/new/g 整行替換
:%s/old/new/g 整個(gè)文件替換
:%s/old/new/gc 整個(gè)文件替換并詢問
u:替換上次命令
ctrl+r 重做
ctrl+^ 兩個(gè)切換
打開多個(gè)文件
vim a.txt b.txt c.txt
:args 可選
:next
:prev
:last
vim diff a.txt b.txt
ctrl+w+w 跳到第二個(gè)文件
:wqa
使用vimtutor工具聯(lián)系vim使用。
vimtutor工具使用方法:
vimtutor zh
如果出現(xiàn)亂馬,使用下面命令解決(只能執(zhí)行一次)
cd /usr/share/vim/vim70/tutor
mv tutor.zh.euc tutor.zh.euc.bak
iconv -f gb2312 -t utf-8 tutor.zh.euc.bak tutor.zh.euc
vimtutor zh
locate :空間換時(shí)間
updatedb
locate passwd
find [路徑] [參數(shù)] [表達(dá)式]
find /usr/share/doc -name filename
-user:根據(jù)文件擁有者尋找文件
-group:根據(jù)文件所屬組尋找文件
-name:根據(jù)文件名尋找文件
-perm:根據(jù)文件權(quán)限尋找
-size:根據(jù)文件大小尋找
-type:根據(jù)文件類型尋找文件,參數(shù)對(duì)應(yīng)c b l f d
find 的表達(dá)式使用通配符時(shí)需要使用“”圈界
find 目錄 條件 條件
[root@localhost ~]# find / -name "pass*"
當(dāng)前目錄:.
find . -name "*ss*"
find . -type f(文件)
find . -type d(目錄)
[root@localhost ~]# find . -nouser(文件無屬主)
[root@localhost ~]# find . -nogroup(文件無屬組)
[root@localhost ~]# find /home/ -user/group user1
-exec
[root@localhost ~]# find . -nouser -exec rm {} \;
{}代表文件和目錄
\轉(zhuǎn)義字符
-ok
find . -nogroup -ok rm -rf {} \;有提示刪除
[root@localhost ~]# stat a
File: “a”
Size: 0 Blocks: 0 IO Block: 4096 一般空文件
Device: 803h/2051d Inode: 261796 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2011-04-02 14:23:25.000000000 +0800(創(chuàng)建時(shí)間:-atime)
Modify: 2011-04-02 14:23:25.000000000 +0800(修改時(shí)間:-mtime)
Change: 2011-04-02 14:23:25.000000000 +0800(改變屬組屬主會(huì)變:-ctime)
find /root -mtime -5(5天以內(nèi)) 5(5天時(shí)) +5(5天前)
find . -perm 400:要求權(quán)限全部匹配,精確匹配
find . -perm +600(wr):有w,r中任意權(quán)限的都會(huì)列出,即會(huì)列出200 400 600 的權(quán)限
find . -perm -600 :要求權(quán)限完全滿足 權(quán)限大于等于600
-name -type
-name -user
-perm -type
-nouser
-nogroup
-mtime
-exec
-ok
-rgex(正則表達(dá)式)
1、這么就用不會(huì)提示了:#
\cp
-rf
2、
原因:
#
vi
~/.bashrc
如果你看到如下內(nèi)容,以下命令都會(huì)用別名執(zhí)行了,就是說自動(dòng)加了
-i
參數(shù):
alias
rm='rm
-i'
alias
cp='cp
-i'
alias
mv='mv
-i'
為了讓復(fù)制和移動(dòng)大量文件去覆蓋目標(biāo)時(shí),不會(huì)產(chǎn)生一個(gè)個(gè)的提示,命令應(yīng)該這樣寫
#
\cp
-rf
/data/xxx*
/home/xxx
注意
cp
命令前加了
\
,意思是不讓它用~/.bashrc里的別名運(yùn)行,即
-i
參數(shù)
3、補(bǔ)充cp該命令的各選項(xiàng)含義如下
-
a
該選項(xiàng)通常在拷貝目錄時(shí)使用。它保留鏈接、文件屬性,并遞歸地拷貝目錄,其作用等于dpR選項(xiàng)的組合。
-
d
拷貝時(shí)保留鏈接。
-
f
刪除已經(jīng)存在的目標(biāo)文件而不提示。
-
i
和f選項(xiàng)相反,在覆蓋目標(biāo)文件之前將給出提示要求用戶確認(rèn)。回答y時(shí)目標(biāo)文件將被覆蓋,是交互式拷貝。
-
p
此時(shí)cp除復(fù)制源文件的內(nèi)容外,還將把其修改時(shí)間和訪問權(quán)限也復(fù)制到新文件中。
-
r
若給出的源文件是一目錄文件,此時(shí)cp將遞歸復(fù)制該目錄下所有的子目錄和文件。此時(shí)目標(biāo)文件必須為一個(gè)目錄名。
-
l
不作拷貝,只是鏈接文件。
4、需要說明的是,為防止用戶在不經(jīng)意的情況下用cp命令破壞另一個(gè)文件,如用戶指定的目標(biāo)文件名是一個(gè)已存在的文件名,用cp命令拷貝文件后,這個(gè)文件就會(huì)被新拷貝的源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時(shí),最好使用i選項(xiàng)。
sed簡介:流編輯工具,用來對(duì)文本進(jìn)行過濾與替換操作。
sed流程:sed通過一次僅讀取一行內(nèi)容來對(duì)某些指令進(jìn)行處理后輸出。
1、sed通過文件或管道讀取文件內(nèi)容,但sed默認(rèn)并不直接修改源文件,而是將讀入的內(nèi)容復(fù)制到緩沖區(qū)中,稱之為模式空間。
2、所有的指令操作都是在模式空間找那個(gè)進(jìn)行
3、sed根據(jù)相應(yīng)的指令對(duì)模式空間中的內(nèi)容進(jìn)行處理并輸出結(jié)果,默認(rèn)輸出至標(biāo)準(zhǔn)輸出(即屏幕上)。
sed基本語法格式:
用法:sed[選項(xiàng)]...{腳本指令}[輸入文件]...
選項(xiàng): -version 顯示sed版本
-help :顯示幫助文檔
-n,-quiet,-silent靜默輸出,默認(rèn)情況下,sed程序在所有的腳本指令執(zhí)行完畢后,將自動(dòng)打印模式空間中的內(nèi)容。
-e script允許多個(gè)腳本指令被執(zhí)行
-f script-file從文件中讀取腳本指令,對(duì)編寫自動(dòng)化腳本程序很實(shí)用
-i ,-in-place 該選項(xiàng)直接修改源文件
-l N 該選項(xiàng)指定l指令可以輸出的行長度,l指令為輸出非打印字符。
-posix 禁用GNU sed擴(kuò)展功能。
-r 在腳本指令中使用擴(kuò)展正則表達(dá)式。
-s,-separate 默認(rèn)情況下,sed將把輸入的多個(gè)文件名作為一個(gè)長的連續(xù)的輸入流。而GNU sed則允許把它們當(dāng)作單獨(dú)的文件。
-u,-unbuffered 最低限度的緩存輸入與輸出
a,append表示追加指令;
i,insert表示插入指令;
d,delete表示刪除指令;
s,substitution表示替換指令。
sed腳本指令的基本格式是:
[地址,即路徑]命令(有些命令僅可以對(duì)一行操作,有些可以對(duì)多行操作),命令也可以用花括號(hào)進(jìn)行組合,使命令序列可以作用于同一個(gè)地址。
address{
command1
command2
command3
}
sed的基本工作方式是:
sed的替換命令s:
1、全局替換 : s/old/new/g ,其中g(shù)為全局替換,用于替換所有出現(xiàn)的次數(shù); /如果和正則匹配的內(nèi)容沖突可以使用其他符號(hào),如 : s@old@new@g
2、標(biāo)志位
為什么要有多行模式: 配置文件一般有單行出現(xiàn),但也有使用json或XML格式的配置文件,為多行出現(xiàn)。
多行模式處理命令N、D、P
1)單字符替換:在命令模式下使光標(biāo)位于要替換的字符,按r,再按需要的字符;
2)取代字符串:在命令模式下
$s/string/replae/g
會(huì)將全文的string字符串取代為replace字符串,其中1,$s就是指搜尋區(qū)間為文章從頭至尾的意思,g則是表示全部取代不必確認(rèn)。
%s/string/replace/c:同樣會(huì)將全文的string字符串取代為replace字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,c則是表示要替代之前必須再次確認(rèn)是否取代。
1,20s/string/replace/g:將1至20行間的string替代為relpace字符串。
一、vi編輯器有3種基本工作模式
分別是:命令模式、文本輸入模式、和末行模式。
第一:命令行模式:
該模式是進(jìn)入vi編輯器后的默認(rèn)模式。任何時(shí)候,不管用戶處于何種模式,按下ESC鍵即可進(jìn)入命令模式。在該模式下,用戶可以輸入vi命令,用戶管理自己的文檔。此時(shí)從鍵盤上輸入的任何字符都被當(dāng)作編輯命令來解釋。若輸入的字符是合法的vi命令,則vi在接受用戶命令之后完成相應(yīng)的動(dòng)作。但需要注意的是,所輸入的命令并不回顯在屏幕上。若輸入的字符不是vi命令,vi會(huì)響鈴報(bào)警。
第二:文本輸入模式:
在命令模式下輸入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進(jìn)入文本輸入模式。在該模式下,用戶輸入的任何字符都被vi當(dāng)作文件內(nèi)容保護(hù)起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按ESC鍵即可。
第三:末行模式:
末行模式也稱ex轉(zhuǎn)義模式。在命令模式下,用戶按“:”鍵即可進(jìn)入末行模式下,此時(shí)vi會(huì)在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個(gè)“:”作為末行模式的說明符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。末行命令在執(zhí)行完后,vi自動(dòng)回到命令模式。如果要從命令模式轉(zhuǎn)換到編輯模式,可以鍵入a或者i。如果需要從文本模式返回,則按ESC即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
實(shí)例演示
首先我們使用命令 vi filename 打開一個(gè)文件,這個(gè)時(shí)候進(jìn)入到的是命令模式
接下來我們按i,然后鍵盤隨便輸入寫內(nèi)容。
然后按ESC重新進(jìn)入到命令模式。
在命令模式的情況下,我們按:,進(jìn)入到了末行模式。
我們輸入wq!,然后回車,強(qiáng)行保存退出。
下次我們?cè)俅蜷_對(duì)應(yīng)文件(可用less filename命令打開),即可看到內(nèi)容已經(jīng)更改。
補(bǔ)充:
(1)末行模式下:q! 【強(qiáng)制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加個(gè)!】
(2)如果你不想保存直接退出有可以在命令模式下使用“ctrl+z”快捷鍵或者按住“shift”鍵,輸入兩個(gè)z即可退出。
更多命令
進(jìn)入vi的命令:
vi filename :打開或新建文件,并將光標(biāo)置于第一行首
vi +n filename :打開文件,并將光標(biāo)置于第n行首
vi + filename :打開文件,并將光標(biāo)置于最后一行首
vi +/pattern filename:打開文件,并將光標(biāo)置于第一個(gè)與pattern匹配的串處
vi -r filename :在上次正用vi編輯時(shí)發(fā)生系統(tǒng)崩潰,恢復(fù)filename
vi filename….filename :打開多個(gè)文件,依次進(jìn)行編輯
屏幕翻滾類命令:
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕頂部。
插入文本類命令:
i :在光標(biāo)前
I :在當(dāng)前行首
a:光標(biāo)后
A:在當(dāng)前行尾
o:在當(dāng)前行之下新開一行
O:在當(dāng)前行之上新開一行
r:替換當(dāng)前字符
R:替換當(dāng)前字符及其后的字符,直至按ESC鍵
s:從當(dāng)前光標(biāo)位置處開始,以輸入的文本替代指定數(shù)目的字符
S:刪除指定數(shù)目的行,并以所輸入文本代替之
ncw或nCW:修改指定數(shù)目的字
nCC:修改指定數(shù)目的行
刪除命令:
ndw或ndW:刪除光標(biāo)處開始及其后的n-1個(gè)字
do:刪至行首
d$:刪至行尾
ndd:刪除當(dāng)前行及其后n-1行
x或X:刪除一個(gè)字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令:
/pattern:從光標(biāo)開始處向文件尾搜索pattern
?pattern:從光標(biāo)開始處向文件首搜索pattern
n:在同一方向重復(fù)上一次搜索命令
N:在反方向上重復(fù)上一次搜索命令
:s/p1/p2/g:將當(dāng)前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
撤銷回退命令:
u 撤銷上一步的操作
Ctrl+r 恢復(fù)上一步被撤銷的操作
選項(xiàng)設(shè)置:
all:列出所有選項(xiàng)設(shè)置情況
term:設(shè)置終端類型
ignorance:在搜索中忽略大小寫
list:顯示制表位(Ctrl+I)和行尾標(biāo)志($)
number:顯示行號(hào)
report:顯示由面向行的命令修改過的數(shù)目
terse:顯示簡短的警告信息
warn:在轉(zhuǎn)到別的文件時(shí)若沒保存當(dāng)前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan:禁止vi在搜索到達(dá)文件兩端時(shí),又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
末行模式命令:
:n1,n2 co n3:將n1行到n2行之間的內(nèi)容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內(nèi)容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內(nèi)容刪除
:w :保存當(dāng)前文件
:e filename:打開文件filename進(jìn)行編輯
:x:保存當(dāng)前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:wq:保存并退出
:!command:執(zhí)行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內(nèi)容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個(gè)文件內(nèi)容作為command的輸入
:r!command:將命令command的輸出結(jié)果放到當(dāng)前行
寄存器操作:
“?nyy:將當(dāng)前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
“?nyw:將當(dāng)前行及其下n個(gè)字保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
“?nyl:將當(dāng)前行及其下n個(gè)字符保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
“?p:取出寄存器?中的內(nèi)容并將其放到光標(biāo)位置處。這里?可以是一個(gè)字母,也可以是一個(gè)數(shù)字
ndd:將當(dāng)前行及其下共n行文本刪除,并將所刪內(nèi)容放到1號(hào)刪除寄存器中。