Xshell Linux常用命令及vim與許可權修改等常見問題
Xshell :一個強大的安全終端模擬軟體,它支援SSH1, SSH2, 以及Microsoft Windows 平臺的TELNET 協議.(百度百科)
此文講述的是xshell下的Linux命令,此命令在help下大都可以找到。在xshell終端下常用的命令有:
第一部分
0.幫助命令與清屏
help 檢視幫助命令
ls --help 檢視ls命令下的具體用法
info ls 檢視ls命令的作用
clear 清屏
1. 檢視當前路徑
pwd(print working directory)
2.列出當前目錄的檔案
ls 列出所有檔案或者資料夾(以排形式) ls *abc 列出檔案abc內的所有檔案 ls –l 列出所以檔案及其詳細屬性(以列形式,不展示隱藏檔案,隱藏檔案的展示見第二部分) ls .* 展示此級檔案以及上一級檔案(不展示隱藏檔案) ls -a 顯示隱藏檔案 ls -lrt 按時間顯示檔案(l表示詳細列表,r表示反向排序,t表示按時間排序)
3.進入目錄
cd 進入當前使用者主目錄(等同於cd ~)
cd etl/app/TEMP/abc/ddl
進入目錄etl/app/TEMP/abc/ss
cd /home 進入home目錄
cd / 切換到根目錄
cd - 回到上次目錄
cd .. 返回上一級目錄
cd ../.. 返回上兩級目錄
4.刪除命令rm
<font color=red>注意:rm最好不要亂用,刪了就找不回來了,建議要用rm的地方換成用mv到某個備份資料夾!!
rm [-fir]檔案或目錄
-f 是忽略不存在的檔案,不會出現警告資訊(force,強行執行)
rm dir (刪除資料夾)
-i:互動模式,在刪除前會詢問使用者是否執行此操作。(回答y表示是,n表示否)
-r:遞迴刪除(recursive),常用於目錄的刪除,同時刪除目錄下的檔案與子目錄rm
rmdir -rf test 或者 rm -rf test
rm -f flt_date201405.tsv
強行刪除檔案flt_date201405.tsv ,不給任何提示;
若檔案flt_date201405.tsv不存在,直接忽略。rm
rm -r 檔名或目錄名
刪除檔案或目錄下的檔案及子目錄
rm -rf 檔名或目錄
強行刪除檔案或目錄下的檔案及子目錄(刪除壓縮檔案tar等時可用)
rm -i 檔名
互動式的刪除檔案(刪除前系統會逐一進行詢問)
rm -ir 檔名
互動式刪除資料夾及其下的檔案,會逐一詢問
刪除test資料夾下的所有檔案:
rm -r test/*
舉例:刪除example2資料夾
說明,筆者在example1資料夾下又有一個example1資料夾(說明可以有同名的子資料夾,但不能有同名的同一目錄下的資料夾),在example1之下有一個名為example2的資料夾,在此資料夾下有test檔案。現在要刪掉example2資料夾以及test檔案:
第一句使用rm刪除資料夾example2,發現提示說不能刪除,因為example2是資料夾。所以第二條命令用rmdir刪除,提示說此資料夾不是空的,因為其下有test檔案,所以不能刪除。接著第三條命令使用-r即連環刪除命令,將test一併刪除。最後一條ls命令用來展示發現檔案都被刪除了。
rm -i test(刪除test檔案,有提醒是否刪除,是則y,否則n)
5.移動和重新命名檔案 mv
mv flt_date201405.tsv flt_date201406.tsv
將檔案flt_date201405.tsv重新命名為flt_date201406.tsv
mv flt_date201405.tsv /etl/app/TEMP/ff
將檔案轉移到目錄/etl/app/TEMP/ff下
6.複製檔案 cp
可以用cp --help 檢視幫助
cp file1 file2 將file1複製為file2
cp -a dir1 dir2 複製一個目錄
cp -a /tmp/dir1 .
複製一個目錄到當前工作目錄(.代表當前目錄)
cp flt_date201405.tsv flt_date201406.tsv
將檔案複製成為 flt_date201406.tsv
cp flt_date201405.tsv /etl/app/TEMP/ff
將檔案flt_date201405.tsv複製到目錄/etl/app/TEMP/ff下
cp /etl/app/TEMP/abc/flt_date201405.tsv .(注意有空格和點)
將目錄etl/app/TEMP/abc下的flt_date201405.tsv檔案複製到當前的目錄下,檔名保持不變
. 當前目錄
.. 上級目錄
~ 使用者家目錄
- 前一個目錄
cp /home/wudl/test.txt file1
將test.txt檔案拷貝到當前目錄下一個名為file1的資料夾
cp /etl/app/TEMP/abc/flt_date201405.tsv flt_date201406.tsv
將目錄etl/app/TEMP/abc下的flt_date201405.tsv檔案複製到當前的目錄下,檔名改為flt_date201406.tsv
cp -r /etl/app/TEMP /etl/app/TEMP/abc
將目錄/etl/app/TEMP下的所以檔案及子目錄複製到目錄/etl/app/TEMP/abc下
複製一個資料夾test下的所有檔案:
cp -r test/* test1 *表示所有檔案(但不包括隱藏檔案,即.開頭)
cp -r test/. test1 .表示複製所有檔案到test1,包括隱藏檔案
7.比較內容 diff
diff /etl/app etl/app/TEMP
比較目錄/etl/app與目錄etl/app/TEMP下的檔案列表是否相同(不比較檔案的實際內容),會展示出結果
diff flt_date201405.tsv flt_date201406.tsv
比較檔案flt_date201405.tsv與檔案flt_date201406.tsv的實際內容是否相同(文字檔案列出不同處,二進位制的檔案只顯示是否相同),會展示出檔案內容
8.查詢檔案
區別:(1)find命令是根據檔案的屬性進行查詢,如檔名,檔案大小,所有者,所屬組,是否為空,訪問時間,修改時間等。
(2)grep是根據檔案的內容進行查詢,會對檔案的每一行按照給定的模式(patter)進行匹配查詢。
find –name ‘flt_date201406.tsv
在當前的目錄下查詢檔名為flt_date201406.tsv的檔案
find ! -name airline_booking_class.dsql
在當前的目錄下查找出檔名不為flt_date201406.tsv的所有檔案
find / -name file1 從 '/' 開始進入根檔案系統查詢檔案和目錄
find / -user user1 查詢屬於使用者 'user1' 的檔案和目錄
find /home/user1 -name \*.bin 在目錄 '/ home/user1' 中查詢以 '.bin' 結尾的檔案
find /usr/bin -type f -atime +100 查詢在過去100天內未被使用過的執行檔案
find /usr/bin -type f -mtime -10 查詢在10天內被建立或者修改過的檔案
locate \*.ps 尋找以 '.ps' 結尾的檔案,先執行 'updatedb' 命令
find -name '*.[ch]' | xargs grep -E 'expr' 在當前目錄及其子目錄所有.c和.h檔案中查詢 'expr'
find -type f -print0 | xargs -r0 grep -F 'expr' 在當前目錄及其子目錄的常規檔案中查詢 'expr'
find -maxdepth 1 -type f | xargs grep -F 'expr' 在當前目錄中查詢 'expr'grep
A.find命令
基本格式:find path expression
1.按照檔名查詢
(1)find / -name httpd.conf #在根目錄下查詢檔案httpd.conf,表示在整個硬碟查詢
(2)find /etc -name httpd.conf #在/etc目錄下檔案httpd.conf
(3)find /etc -name '*srm*' #使用萬用字元*(0或者任意多個)。表示在/etc目錄下查詢檔名中含有字串‘srm’的檔案
(4)find . -name 'srm*' #表示當前目錄下查詢檔名開頭是字串‘srm’的檔案
2.按照檔案特徵查詢
(1)find / -amin -10 # 查詢在系統中最後10分鐘訪問的檔案(access time)
(2)find / -atime -2 # 查詢在系統中最後48小時訪問的檔案
(3)find / -empty # 查詢在系統中為空的檔案或者資料夾
(4)find / -group cat # 查詢在系統中屬於 group為cat的檔案
(5)find / -mmin -5 # 查詢在系統中最後5分鐘裡修改過的檔案(modify time)
(6)find / -mtime -1 #查詢在系統中最後24小時裡修改過的檔案
(7)find / -user fred #查詢在系統中屬於fred這個使用者的檔案
(8)find / -size +10000c #查找出大於10000000位元組的檔案(c:位元組,w:雙字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小於1000KB的檔案
3.使用混合查詢方式查詢檔案
引數有: !,-and(-a),-or(-o)。
(1)find /tmp -size +10000c -and -mtime +2 #在/tmp目錄下查詢大於10000位元組並在最後2分鐘內修改的檔案
(2)find / -user fred -or -user george #在/目錄下查詢使用者是fred或者george的檔案檔案
(3)find /tmp ! -user panda #在/tmp目錄中查詢所有不屬於panda使用者的檔案
B.grep命令
基本格式:find expression
1.主要引數
[options]主要引數:
-c:只輸出匹配行的計數。
-i:不區分大小寫
-h:查詢多檔案時不顯示檔名。
-l:查詢多檔案時只輸出包含匹配字元的檔名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文字的錯誤資訊。
-v:顯示不包含匹配文字的所有行。
pattern正則表示式主要引數:
\: 忽略正則表示式中特殊字元的原有含義。
^:匹配正則表示式的開始行。
$: 匹配正則表示式的結束行。
\<:從匹配正則表達 式的行開始。
\>:到匹配正則表示式的行結束。
[ ]:單個字元,如[A]即A符合要求 。
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的單個字元。
* :有字元,長度可以為0。
2.例項
(1)grep 'test' d* #顯示所有以d開頭的檔案中包含 test的行
(2)grep ‘test’ aa bb cc #顯示在aa,bb,cc檔案中包含test的行
(3)grep ‘[a-z]\{5\}’ aa #顯示所有包含每行字串至少有5個連續小寫字元的字串的行
(4)grep magic /usr/src #顯示/usr/src目錄下的檔案(不含子目錄)包含magic的行
(5)grep -r magic /usr/src #顯示/usr/src目錄下的檔案(包含子目錄)包含magic的行
(6)grep -w pattern files :只匹配整個單詞,而不是字串的一部分(如匹配’magic’,而不是’magical’)
(7)grep -si "Ranges" * 顯示包含Ranges的所有檔案,不包含大小寫(在進入檔案後可以再/module Ranges檢視)
9.顯示檔案大小
wc -l flt_date201406.tsv
檢視檔案flt_date201406.tsv有多少行
wc -c flt_date201406.tsv
檢視檔案flt_date201406.tsv有多少位元組
10. 顯示檔案內容
cat fastload.pl 檢視檔案所有內容
head -2 file1 檢視一個檔案的前兩行
more file1 檢視一個長檔案的內容
tac file1 從最後一行開始反向檢視一個檔案的內容
tail -3 file1 檢視一個檔案的最後三行
11. 編輯檔案
新建檔案
---- vim ljt.txt 需要新建的檔名ljt.txt
-----vim test/name.doc 在test資料夾下建立檔名為name的Word文件
----點選鍵盤 ‘i’鍵,然後編寫檔案內容 (其中需要輸入中文時,選擇 編碼 Unicode(UTF-8))
----修改完畢後,點選鍵盤 Esc,然後按 Shift 和 :
輸入 wq 保持修改的內容(放棄修改時輸入 q)
修改已有的檔案
---- vim ljt.txt 需要修改的已存在的檔名ljt.txt
----點選鍵盤 ‘i’鍵,然後編寫檔案內容 (其中需要輸入中文時,選擇 編碼 Unicode(UTF-8))
----修改完畢後,點選鍵盤 Esc,然後按 Shift 和 :
輸入 wq 保持修改的內容(放棄修改時輸入 q)
補充:vim/vi是一種流行的編輯器,在Linux中被廣泛使用,深受歡迎的編輯器還有Emacs, python下預設編輯器為IDLE。vim/vi有三種基本模式:命令模式(command mode)、插入模式(Insert mode)、底行模式(last line mode)。各種模式功能如下:
(1)命令模式
在建立檔案如輸入vim test,此時進入的即是命令模式,可以連續按兩下d鍵刪除行,u可以取消操作。此模式下更多命令如下:
h 左移游標一個字元
l 右移游標一個字元
k 游標上移一行
j 游標下移一行
^ 游標移動至行首
0 數字“0”,游標移至行的開頭
shift+0游標移至文章的最後
gg游標移到文章開頭
$ 游標移動至行尾
Ctrl+f 向前翻屏
Ctrl+b 向後翻屏
Ctrl+d 向前翻半屏
Ctrl+u 向後翻半屏
i 在游標位置前插入字元
a 在游標所在位置的後一個字元開始增加
o 插入新的一行,從行首開始輸入
ESC 從輸入狀態退至命令狀態
dl刪除游標所在的一個字
x 刪除游標後面的字元
#x 刪除游標後的#個字元
X (大寫X),刪除游標前面的字元
#X 刪除游標前面的#個字元
dd 刪除游標所在的行
#dd 刪除從游標所在行數的#行
yw 複製游標所在位置的一個字
#yw 複製游標所在位置的#個字
yy 複製游標所在位置的一行
#yy 複製從游標所在行數的#行
p 貼上
u 取消操作
cw 更改游標所在位置的一個字
#cw 更改游標所在位置的#個字
(2)插入模式
在建立檔案後要進入插入模式編寫、修改和刪除檔案時需要按“i”(或者大寫“I”)鍵。此時看到底下有提示--INSETR--,代表進入插入模式。在此情況寫即可對文件做改動。在退出插入模式進入命令模式時需要按Esc鍵。
(3)底行模式
儲存檔案或者退出vim編輯。
要進入命令模式才能進行底行模式。在編輯文件結束後從插入模式按Esc進入底行模式,此時按「:」冒號(注意要按shift才能輸入冒號)進入底行模式,在冒號後有如下操作:(注意,需要鍵盤在英文輸入模式下進行)
:w test(w表示write,表示將文件以test為檔名儲存),回車後發現檔名改為test,但並沒有退出編輯,要退出見下
:q或者q!(注意有感嘆號)q代表quit,加感嘆號是強行退出,此種退出方法不儲存修改的文件,類似於Word文件中退出而不儲存
:wq,即write and quit,此種退出方法=儲存並退出。
當要檢視文件時可用cat命令,如cat test。當要再次編輯文件時,vi test或vim test即可進入。
(注:上文來自鈕甲跳,文章連結為:http://www.cnblogs.com/runner-ljt/p/4551568.html補充部分來自於EmanLee的部落格網址為:http://www.cnblogs.com/emanlee/archive/2011/11/10/2243930.html有改動)
注意:當使用vim或者vi非正常關閉時(斷電或者非常規退出,如Ctrl+zz),會生成.swp交換檔案。實際上在vi或者vim建立檔案時系統會自動帶有.swp檔案以防不測,當正常關閉時.swp檔案消失,否則一直存在.在非正常關閉下出現.swp檔案,以test2為例,則為.test2.swp(第一個點表示此為隱藏檔案,用ls命令看不到此檔案,可以用ls -al命令檢視全部檔案,見第二部分第三小節)。此時用vi test2進入則有提示如下:
文中說是:找到一個swp檔案,出現的原因是(1)其他程式正在程式設計此檔案.....(2)此檔案的編輯程式崩潰。可以使用recover或者vim -r 來恢復.....
我們只需要輸入“r”或者“R”來恢復此檔案即可,在輸入之後檔案已經恢復,此時可以刪除不需要的swp檔案(命令為rm .test2.swp,否則會一直提示,但是要確保已經不需要此檔案,不然刪除了接著你很快就會傷心的)然後vi test2即可進入此檔案。
12,壓縮和解壓
tar常用命令:
A壓縮檔案 -cvf命令
1)處於當前工作路徑下,打包當前路徑下的檔案並放在當前路徑
((-c: 建立壓縮檔案;-v: 顯示所有過程;-f: 使用檔案名字,是必須的,是最後一個引數))
tar -cvf archive.tar file1 把file1打包成 archive.tar
tar -cvf archive.tar file1 dir1 把 file1,dir1 打包成 archive.tar
(當前處在test檔案下,將其下的test1資料夾壓縮為test1.tar)
2)處在當前工作路徑下,打包檔案到指定目錄
tar -cvf 指定目錄 目標檔案
如tar -cvf /home/wudl/intel/test1.tar test1(將當前資料夾下的test1檔案打包到intel資料夾下,並取名為test1.tar
(路徑可以紅pwd查詢,-C是臨時切換工作目錄)
3)將其他檔案打包到當前工作路徑
tar -cvf +壓縮的檔名.tar +目標檔案目錄
如:tar -cvf test1.tar /home/wudl/test/test1(將test資料夾下的test1檔案壓縮到當前目錄,並命名為test1.tar)
B解壓檔案 -xvf 命令
1)處於當前工作路徑下,解壓當前路徑下的檔案並放在當前路徑
唉,有待補充,以上以下都有錯
2)處在當前檔案下
舉例:tar -xvf archive.tar -C +目標目錄 把壓縮包釋放到目標目錄下
如:tar -xvf file.tar -C /home/wudl/test 把檔案file.tar解壓到test目錄下(並保留原壓縮檔案)
bzip2 file1 壓縮 file1
bunzip2 file1.bz2 解壓 file1.bz2
gzip file1 壓縮 file1
gzip -9 file1 最大程度壓縮 file1
gunzip file1.gz 解壓 file1.gz
tar -tf archive.tar 顯示一個包中的內容
tar -xvf archive.tar 釋放一個包
tar -xvf archive.tar -C +目標目錄 把壓縮包釋放到目標目錄下
zip file1.zip file1 建立一個zip格式的壓縮包
zip -r file1.zip file1 dir1 把檔案和目錄壓縮成一個zip格式的壓縮包
unzip file1.zip 解壓一個zip格式的壓縮包到當前目錄
unzip test.zip -d /tmp/ 解壓一個zip格式的壓縮包到 /tmp 目錄
對tar詳解:
語法:tar [主選項+輔選項] 檔案或者目錄
-c: 建立壓縮檔案
-x:解壓
-t:檢視內容
-r:向壓縮歸檔檔案末尾追加檔案
-u:更新原壓縮包中的檔案
這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的引數是根據需要在壓縮或解壓檔案時可選的。
-z:有gzip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過程
-O:將檔案解開到標準輸出
下面的引數-f是必須的
-f: 使用檔案名字,切記,這個引數是最後一個引數,後面只能接檔案名。
壓縮
tar -cvf jpg.tar *.jpg //將目錄裡所有jpg檔案打包成tar.jpg
tar -czf jpg.tar.gz *.jpg //將目錄裡所有jpg檔案打包成jpg.tar後,並且將其用gzip壓縮,生成一個gzip壓縮過的包,命名為jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //將目錄裡所有jpg檔案打包成jpg.tar後,並且將其用bzip2壓縮,生成一個bzip2壓縮過的包,命名為jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg //將目錄裡所有jpg檔案打包成jpg.tar後,並且將其用compress壓縮,生成一個umcompress壓縮過的包,命名為jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的壓縮,需要先下載rar for linux
zip jpg.zip *.jpg //zip格式的壓縮,需要先下載zip for linux
解壓
tar -xvf file.tar //解壓 tar包
tar -xzvf file.tar.gz //解壓tar.gz
tar -xjvf file.tar.bz2 //解壓 tar.bz2
tar -xZvf file.tar.Z //解壓tar.Z
unrar e file.rar //解壓rar
unzip file.zip //解壓zip
總結
1、*.tar 用 tar -xvf 解壓
2、*.gz 用 gzip -d或者gunzip 解壓
3、*.tar.gz和*.tgz 用 tar -xzf 解壓
4、*.bz2 用 bzip2 -d或者用bunzip2 解壓
5、*.tar.bz2用tar -xjf 解壓
6、*.Z 用 uncompress 解壓
7、*.tar.Z 用tar -xZf 解壓
8、*.rar 用 unrar e解壓
9、*.zip 用 unzip 解壓
第二部分
1,建立資料夾(刪除資料夾見第一部分)
(1)mkdir 檔名(如:mkdir test,則建立了一個test的資料夾)
說明:mkdir 是make directory(建立目錄)的簡寫,如果當前目錄存在test資料夾,則不能在此目錄建立test資料夾(即不能在一個目錄下建立兩個同名的資料夾),但可以在test目錄下建資料夾名為test的子資料夾。
(2)mkdir home/test在home目錄下建立test資料夾
(3)mkdir home1 home2 home3建立三個資料夾,名字分別為home1、home2、home3
(4)mkdir -p /tmp/dir1/dir2 建立一個目錄樹
2,建立隱藏資料夾
同隱藏檔案一樣,在Linux中在檔名前加“.”表示此檔案或資料夾為隱藏檔案。
mkdir .name 建立名為name的隱藏資料夾
vim .test.doc 建立名為test.doc的隱藏檔案,並開啟
touch .test.doc 建立名為test.doc的隱藏檔案,但不開啟。touch的詳細作用見7
3,檢視隱藏檔案
ls -a(或者ls -al) 檢視所有檔案,包括隱藏檔案,以行展示(以列的形式展示,同時顯示詳細資訊,從左到右分別表示:【許可權】【連線(到此節點i-node的檔案數)】【所有者】【使用者組】【檔案容量】【修改日期】【檔名】)
ls -d .*只展示隱藏檔案(即前頭有“.”的檔案)(注意,s和d後都有一個空格)
l.(此為網上部分網友的說法,在xshell下親試無效)
4.修改檔案許可權
修改檔案許可權有兩種方法,分別是數字型別修改法和符號型別修改法
(1)數字型別修改法
檔案許可權有rwx,即read,write,execute三種,從數字上來講,對應方式為:r---4,w----2,x---1
改變許可權使用chmod(change mode)命令,chmod命令用法如下:
chmod 數字 檔案或檔名。
數字改變舉例如下:
要使得自己對檔案test有讀寫可執行三種,所屬使用者組及其他組都只有可讀可執行而不能修改的許可權,則相當於給自己許可權的值為4+3+1=7,其他兩個組都是4+1=5,則執行命令如下
chmod 755 test
(2)符號型別法
舉例如下:
chmod u=rwx,go=rx test
以上表示使用者自己u(user)具有rwx三種許可權,所屬組group,以及其他組人員others只有rx兩種許可權。注意:中間那一塊沒有空格隔開。
如果不知道test的許可權如何,也不想知道,而只是想在其上對所有人都增加w或減少r的許可權,則可以用“+”或者“-”來執行命令。如:
對所有人增加w的許可權:
對所有人減少r的許可權:
5.安裝程式
sudo 是superuser do的簡寫,它的含義是以超級使用者的許可權執行,普通使用者無法執行許多命令,比如說安裝程式
6.建立連線
使用ln命令(link),格式為:ln [引數] [原始檔或目錄] [目標檔案或目錄]
命令引數有:
必要引數:
-b 刪除,覆蓋以前建立的連結
-d 允許超級使用者製作目錄的硬連結
-f 強制執行
-i 互動模式,檔案存在則提示使用者是否覆蓋
-n 把符號連結視為一般目錄
-s 軟連結(符號連結)
-v 顯示詳細的處理過程
選擇引數:
-S “-S<字尾備份字串> ”或 “--suffix=<字尾備份字串>”
-V “-V<備份方式>”或“--version-control=<備份方式>”
--help 顯示幫助資訊
--version 顯示版本資訊
舉例:筆者首先在/home/wudl/test1/name資料夾下建立一個名為ln的檔案,檔案裡的內容為:
this is a link file
現在進入另一個資料夾,路徑為(pwd檢視路徑)/home/wudl/test1/test1/,筆者現在要在此路徑下連結上面提到的ln檔案,程式碼如下:
ln -s /home/wudl/test1/name/ln /home/wudl/test1/test1/link(注意有空格)#link是不存在的檔案,此處為新建了一個名為link的用以連線ln檔案的目標檔案
即:ln -s [原始檔] [目標檔案](注意有空格,使用的是軟連結soft)
cat 用於檢視檔案,此時可以看到新增加了一個叫做link的檔案,並且裡面的內容跟ln檔案的內容一致。
ln -s /home/wudl/test file
將檔案test連結到當前目錄下的file檔案(當前資料夾下不存在file檔案,此檔案則新建)
7.建立檔案
1)使用vi命令
vi filename :開啟或新建檔案,並將游標置於第一行首
vi +n filename :開啟檔案,並將游標置於第n行首
vi + filename :開啟檔案,並將游標置於最後一行首
vi +/pattern filename:開啟檔案,並將游標置於第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename....filename :開啟多個檔案,依次進行編輯
2)使用touch命令
二、touch命令使用格式
格式:touch [-acfm][-d <日期時間>][-r <參考檔案或目錄>][-t <日期時間>][--help] [--version][檔案或目錄...] 或 touch [-acfm][--help][--version][日期時間][檔案或目錄...]
(touch [-acfm][-r reference-file] [--file=reference-file][-t MMDDhhmm[[CC]YY][.ss]][-d time] [--date=time][--time={atime,access,use,mtime,modify}][--no-create][--help] [--version]file1 [file2 ...])
三、touch命令功能
touch fileA,如果fileA存在,使用touch命令可更改這個檔案或目錄的日期時間,包括存取時間和更改時間;如果fileA不存在,touch命令會在當前目錄下新建一個空白檔案fileA。
注:使用touch指令可更改檔案或目錄的日期和時間,包括存取時間和更改時間。檔案的時間屬性包括檔案的最後訪問時間,最後修改時間以及最後在磁碟上修改的時間,命令stat顯示結果顯示了三個時間屬性。
四、touch命令選項說明
a 改變檔案的讀取時間記錄。
m 改變檔案的修改時間記錄。
c 假如目的檔案不存在,不會建立新的檔案。與 --no-create 的效果一樣。
f 不使用,是為了與其他 unix 系統的相容性而保留。
r 使用參考檔的時間記錄,與 --file 的效果一樣。
d 設定時間與日期,可以使用各種不同的格式。
t 設定檔案的時間記錄,格式與 date 指令相同。[[CC]YY]MMDDhhmm[.SS],CC為年數中的前兩位,即”世紀數”;YY為年數的後兩位,即某世紀中的年數.如果不給出CC的值,則linux中touch命令引數將把年數CCYY限定在1969--2068之內.MM為月數,DD為天將把年數CCYY限定在1969--2068之內.MM為月數,DD為天數,hh 為小時數(幾點),mm為分鐘數,SS為秒數.此處秒的設定範圍是0--61,這樣可以處理閏秒.這些數字組成的時間是環境變數TZ指定的時區中的一個時間.由於系統的限制,早於1970年1月1日的時間是錯誤的.
--no-create 不會建立新檔案。
--help 列出指令格式。
--version 列出版本訊息。
五、touch命令使用舉例
例一:更新file1.txt的存取和修改時間。
touch file1.txt
例二:如果file1.txt不存在,則建立檔案
touch -c file1.txt
例三:更新file1.txt的時間戳和ref+file相同
touch -r ref+file file1.txt
例四:設定檔案的時間戳為2011年5月18日9點45分10秒
ls -l file1.txt
touch -t 1105190945.10 file1.txt