touch命令
如果文件不存在,創建新文件。
文件存在,同時更新訪問和修改時間。
注意文件的更新時間和訪問時間不一樣。
touch file1
vi file1
添加內容。
ls -lt 會看到該文件的最后修改時間。
過一些時候,執行more file參看一下該文件,也就是訪問一下。
ls -lu會看到該文件最后訪問的時間。
這是再touch file1,ls -lt和ls -lu會看到同樣的時間。
做不了事(執行不了動作),你要檢查幾件事!
1.你是誰 (id命令)
openlab.tarena.ca% id
uid=25791 gid=103(tarena)
2.你在哪(pwd),你對某個文件的關系(owner group同組者 other)
3.你是否能在某目錄里做事(讀ls 寫創建文件 執行cd),看看這個目錄的權限
在該目錄下,執行 ls -ld,查看該目錄
注意:回上一級,執行ls -l lujl,是查看該目錄下文件和子目錄的權限。
ls -al lujl 可以查看隱藏文件。
ls -R 將該目錄下所有文件夾遞歸展開
su - somebody 就是將環境變量也更換為somebody的,否則不更新,cd時回原來的用戶的主目錄。
一些基本命令。
mkdir -p dir6/dir7/dir8 可創建層級目錄
cp -i beans apple 文件存在,會提示,-i作用
===============================
openlab.tarena.ca% cp -r dir3 dir4
注意:如果dir4不存在,那么就先建立dir4,在將dir3中內容拷貝過去,如果dir4存在,則是將整個dir3包括dir3本身,整個目錄結構拷貝過去。
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 命令相當于給文件改名稱
mv 源 目標
目標不存在,相當于給源改名稱
目標存在,對于文件,覆蓋
對于目錄,移動整個目錄結構到目標目錄中。
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 每個系統根下都有一個臨時文件夾,查看該目錄權限,
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,而是后面有個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
蘭色表示硬鏈接數,對于目錄,那個數字表示該目錄下文件和子目錄數總和。
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號,是相同的,他們是同一個inode,硬鏈接號加1。
=================================================
inode i節點 關鍵概念
touch beans這個命令執行時,創建一個文件時到系統中申請一個i節點,如果申請不到,就不會創建成功。
i節點保存這除文件名以外的關于這個文件的所有屬性。大小,屬主,屬組,權限,數據塊指針。
那么那個數據塊(data block)指針,指向一個數據塊。
一個目錄也有inode,inode中數據塊指針指向的數據塊保存著該目錄的文件名與inode的對應信息。
==================================================
軟鏈接
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號不同,說明是兩個文件。那么beans.sln的大小是5,基本可以理解為保存著beans的名稱,以便能夠找到它。
這時,more beans.sln實際上 先找到beans.sln的inode-〉數據塊-〉5個字母beans->more beans
系統中就有軟鏈接的例子,
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 查看函數 man -k setuid
空格
b back
f forward
q
/string search
n 查找一個
ls d??=ls dat
ls [a-f]b*
cd;ls
標準輸出重定向
cal 5 2007>a.txt
cal 5 2007>>a.txt追加
ls -l /etc|more
cal 5 2007|tee cal.lst
tee是個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
\是指要換行繼續寫命令
然后就是awk和sed有很強的文本處理能力。
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后,會看到結果。
==========================================================
VI
底行模式 :/? 命令模式 i a o 輸入模式(Esc退出)
kljh 上右下左
i插入
a后
o當前行下插入新行 大寫O當前行上插入新行
vi file1
i
some words
Esc
:w!
直接輸入vi
編輯到最后
Esc
:wq! file2
保存file2,并退出
不保存直接退
:q!
保存后直接退
:wq!
:x!
ZZ
命令模式下
G 最后一行
1G第一行,輸入沒有時間限制
當前屏幕
Shift +L 最下
Shift +H 嘴上
Shift +M中間
Ctrl D 滾下半屏
Ctrl U 滾上半屏
Ctrl F 滾下整屏
Ctrl B 滾上整屏
r 修改一個字母
cw 修改某個單詞
cc 整行
C 替換光標到行尾
yw
yy
p
:1,8co6
:1,6m8
x
dw
dd
5dd
:5,10d
u UNDO
~ 大小寫
J 連接下一行
:set nu
:21=21G
/
?
n 繼續查找
:r file2
:1,$/要替換/新串/g
g表示全部替換
:1,19/^/#/
表示1到19行開頭加入#,注釋掉
^表示行首,這也是為什么Shift +6回到當前行行首,(Shift+4行尾)
posted on 2005-11-15 21:51
北國狼人的BloG 閱讀(439)
評論(0) 編輯 收藏 所屬分類:
達內學習總結