touch命令
如果文件不存在,創(chuàng)建新文件。
文件存在,同時(shí)更新訪問和修改時(shí)間。
注意文件的更新時(shí)間和訪問時(shí)間不一樣。
touch file1
vi file1
添加內(nèi)容。
ls -lt 會看到該文件的最后修改時(shí)間。
過一些時(shí)候,執(zhí)行more file參看一下該文件,也就是訪問一下。
ls -lu會看到該文件最后訪問的時(shí)間。
這是再touch file1,ls -lt和ls -lu會看到同樣的時(shí)間。
做不了事(執(zhí)行不了動作),你要檢查幾件事!
1.你是誰 (id命令)
openlab.tarena.ca% id
uid=25791 gid=103(tarena)
2.你在哪(pwd),你對某個(gè)文件的關(guān)系(owner group同組者 other)
3.你是否能在某目錄里做事(讀ls 寫創(chuàng)建文件 執(zhí)行cd),看看這個(gè)目錄的權(quán)限
在該目錄下,執(zhí)行 ls -ld,查看該目錄
注意:回上一級,執(zhí)行l(wèi)s -l lujl,是查看該目錄下文件和子目錄的權(quán)限。
ls -al lujl 可以查看隱藏文件。
ls -R 將該目錄下所有文件夾遞歸展開
su - somebody 就是將環(huán)境變量也更換為somebody的,否則不更新,cd時(shí)回原來的用戶的主目錄。
一些基本命令。
mkdir -p dir6/dir7/dir8 可創(chuàng)建層級目錄
cp -i beans apple 文件存在,會提示,-i作用
===============================
openlab.tarena.ca% cp -r dir3 dir4
注意:如果dir4不存在,那么就先建立dir4,在將dir3中內(nèi)容拷貝過去,如果dir4存在,則是將整個(gè)dir3包括dir3本身,整個(gè)目錄結(jié)構(gòu)拷貝過去。
openlab.tarena.ca% ls
dir3 file1
openlab.tarena.ca% cp -r dir3 dir4
openlab.tarena.ca% ls -R
.:
dir3 dir4 file1
./dir3:
a.txt
./dir4:
a.txt
openlab.tarena.ca% cd dir4
openlab.tarena.ca% rm *
openlab.tarena.ca% cd
openlab.tarena.ca% ls
dir3 dir4 file1
openlab.tarena.ca% cp -r dir3 dir4
openlab.tarena.ca% ls -R
.:
dir3 dir4 file1
./dir3:
a.txt
./dir4:
dir3
./dir4/dir3:
a.txt
mv 命令相當(dāng)于給文件改名稱
mv 源 目標(biāo)
目標(biāo)不存在,相當(dāng)于給源改名稱
目標(biāo)存在,對于文件,覆蓋
對于目錄,移動整個(gè)目錄結(jié)構(gòu)到目標(biāo)目錄中。
openlab.tarena.ca% ls
dir3 file2
openlab.tarena.ca% mkdir dir4
openlab.tarena.ca% ls
dir3 dir4 file2
openlab.tarena.ca% mv dir3 dir4
openlab.tarena.ca% ls -R
.:
dir4 file2
./dir4:
dir3
./dir4/dir3:
a.txt
rm -r[i] directory_name(s)
rmdir只能刪除空目錄
題外話
/tmp 每個(gè)系統(tǒng)根下都有一個(gè)臨時(shí)文件夾,查看該目錄權(quán)限,
openlab.tarena.ca% cd /tmp
openlab.tarena.ca% ls -ld
total 64
drwxrwxrwt 4 0 sys 753 11月 15 20:06 .
openlab.tarena.ca%
看好了,那不是777,而是后面有個(gè)t,1777,它表示/tmp里,誰都能寫,讀,刪。但是必須是該文件的owner。
chmod 1777 dir
ln
兩種鏈接,
硬連接和符號連接(軟連接)
openlab.tarena.ca% ls -l
total 4
drwxr-xr-x 3 25791 tarena 512 11月 15 20:03 dir4
-rw-r--r-- 1 25791 tarena 13 11月 15 19:38 file2
蘭色表示硬鏈接數(shù),對于目錄,那個(gè)數(shù)字表示該目錄下文件和子目錄數(shù)總和。
openlab.tarena.ca% cp file2 file2.bak
openlab.tarena.ca% ln file2 file2.ln
openlab.tarena.ca% ls -il
total 8
858670 drwxr-xr-x 3 25791 tarena 512 11月 15 20:03 dir4
409639 -rw-r--r-- 2 25791 tarena 13 11月 15 19:38 file2
409792 -rw-r--r-- 1 25791 tarena 13 11月 15 20:23 file2.bak
409639 -rw-r--r-- 2 25791 tarena 13 11月 15 19:38 file2.ln
openlab.tarena.ca%
注意硬鏈接后,被鏈接文件和鏈接文件的inode號,是相同的,他們是同一個(gè)inode,硬鏈接號加1。
=================================================
inode i節(jié)點(diǎn) 關(guān)鍵概念
touch beans這個(gè)命令執(zhí)行時(shí),創(chuàng)建一個(gè)文件時(shí)到系統(tǒng)中申請一個(gè)i節(jié)點(diǎn),如果申請不到,就不會創(chuàng)建成功。
i節(jié)點(diǎn)保存這除文件名以外的關(guān)于這個(gè)文件的所有屬性。大小,屬主,屬組,權(quán)限,數(shù)據(jù)塊指針。
那么那個(gè)數(shù)據(jù)塊(data block)指針,指向一個(gè)數(shù)據(jù)塊。
一個(gè)目錄也有inode,inode中數(shù)據(jù)塊指針指向的數(shù)據(jù)塊保存著該目錄的文件名與inode的對應(yīng)信息。
==================================================
軟鏈接
ln -s beans beans.sln
openlab.tarena.ca% ls -il beans*
total 10
409793 -rw-r--r-- 1 25791 tarena 0 11月 15 20:52 beans
409794 lrwxrwxrwx 1 25791 tarena 5 11月 15 20:53 beans.sln -> beans
openlab.tarena.ca%
注意,beans和beans.sln的inode號不同,說明是兩個(gè)文件。那么beans.sln的大小是5,基本可以理解為保存著beans的名稱,以便能夠找到它。
這時(shí),more beans.sln實(shí)際上 先找到beans.sln的inode-〉數(shù)據(jù)塊-〉5個(gè)字母beans->more beans
系統(tǒng)中就有軟鏈接的例子,
openlab.tarena.ca% cd /
openlab.tarena.ca% ls -l|grep bin
lrwxrwxrwx 1 0 root 9 5月 28 2002 bin -> ./usr/bin
drwxr-xr-x 2 0 sys 1024 5月 16 2004 sbin
openlab.tarena.ca%
可以看到 bin就是./usr/bin的軟鏈接。
man name 查看命令
man -k function 查看函數(shù) man -k setuid
空格
b back
f forward
q
/string search
n 查找一個(gè)
ls d??=ls dat
ls [a-f]b*
cd;ls
標(biāo)準(zhǔn)輸出重定向
cal 5 2007>a.txt
cal 5 2007>>a.txt追加
ls -l /etc|more
cal 5 2007|tee cal.lst
tee是個(gè)3向頭,既顯示,又重定向到cal.lst文件中。
cal 5 2007|tee -a cal.lst
追加
cat /dev/null > ~/b.txt
清空文件,回收datablock
cat /etc/passwd | awk -F: '{print $1 "\t" $6}' \
|sort >~/userinfo
\是指要換行繼續(xù)寫命令
然后就是awk和sed有很強(qiáng)的文本處理能力。
tail -30 a.txt
head -30 a.txt
tail -f ServiceStartupLog.txt
more filename(s)操作和man一樣!
openlab.tarena.ca% who am i
lujl pts/2 11月 15 19:27 (219.236.137.165)
查看登陸用戶
whoami顯示有效用戶。su后,會看到結(jié)果。
==========================================================
VI
底行模式 :/? 命令模式 i a o 輸入模式(Esc退出)
kljh 上右下左
i插入
a后
o當(dāng)前行下插入新行 大寫O當(dāng)前行上插入新行
vi file1
i
some words
Esc
:w!
直接輸入vi
編輯到最后
Esc
:wq! file2
保存file2,并退出
不保存直接退
:q!
保存后直接退
:wq!
:x!
ZZ
命令模式下
G 最后一行
1G第一行,輸入沒有時(shí)間限制
當(dāng)前屏幕
Shift +L 最下
Shift +H 嘴上
Shift +M中間
Ctrl D 滾下半屏
Ctrl U 滾上半屏
Ctrl F 滾下整屏
Ctrl B 滾上整屏
r 修改一個(gè)字母
cw 修改某個(gè)單詞
cc 整行
C 替換光標(biāo)到行尾
yw
yy
p
:1,8co6
:1,6m8
x
dw
dd
5dd
:5,10d
u UNDO
~ 大小寫
J 連接下一行
:set nu
:21=21G
/
?
n 繼續(xù)查找
:r file2
:1,$/要替換/新串/g
g表示全部替換
:1,19/^/#/
表示1到19行開頭加入#,注釋掉
^表示行首,這也是為什么Shift +6回到當(dāng)前行行首,(Shift+4行尾)