linux指令之文件的建立、查詢、修改

mkdir(make directory)linux

功能:建立目錄
案例:
mkdir test
點評:將建立一個目錄名爲test的目錄



rmdir(remove directory)數據庫

功能:刪除目錄
案例:
rmdir test
點評:將刪除目錄test

 

mvubuntu

複製代碼
功能:移動目錄
範例一:
mv mvtest test
點評:將目錄mvtest 移動到目錄test下面

範例二:
mv mvtest mvtest2
點評:改名的效果

範例三:
mv test test2 mvtest
點評:將目錄test test2 一併移動到mvtest下面
複製代碼

 

查看文檔的指令有哪些?以及各自的特色?vim

複製代碼
cat 由第一行開始顯示檔案內容

tac 由最後一行開始顯示,內容顛倒過來了

nl 顯示的時候,順道輸出行號

more 一頁一頁的顯示檔案內容(Enter向下翻一行,空格向下翻一頁,q離開more模式)

less 與more相似,可是比more更好,能夠往前翻頁(能夠經過PageUp PageDown來進行翻頁,空格向下翻一頁,q離開)

head 只看頭幾行(head -n 跟數字能夠指定顯示多少行)

tail 只看尾幾行 (tail -n 跟數字能夠指定顯示多少行)

od 以二進制的方式讀取檔案內容
複製代碼

 

如何新建文檔?安全

用touch指令來實現less

touch指令不只能夠新建文檔,還能夠修改文檔日期post

案例:spa

複製代碼
ll是ls -l 的別名,實際上是一個意思

touch -d "2 days ago" testtouch
功能:將文件testtouch日期修改提早兩天,其中-d表示天數

touch testtouch
功能:建立文件testtouch

touch -t 1307030202 testtouch
功能:將文件testtouch的日期修改成2013年7月3日2點2分,-t是一種時間格式
複製代碼

 

umask的使用?code

umask對於檔案的預設管理頗有關係。blog

好比umask的值爲0022

那麼新建文件和文件夾的權限爲

 咱們新建一個文件和文件夾來看看

root@ubuntu:~/tmp# touch test1
root@ubuntu:~/tmp# mkdir test2

-rw-r--r--  1 root       root          0 2013-06-05 16:15 test1
drwxr-xr-x  2 root       root       4096 2013-06-05 16:15 test2

果真如想象的同樣

那麼咱們從新設置一下umask爲0002看看

umask 0002

複製代碼
root@ubuntu:~/tmp# rm test1
root@ubuntu:~/tmp# rmdir test2

root@ubuntu:~/tmp# touch test1
root@ubuntu:~/tmp# mkdir test2

-rw-rw-r--  1 root       root          0 2013-06-05 16:22 test1
drwxrwxr-x  2 root       root       4096 2013-06-05 16:20 test2/
複製代碼

這時候,只去除了一個w

 

如何設置文檔的隱藏屬性?

複製代碼
答:用chattr
+ 增長一個特殊參數
- 移除一個特殊參數
= 僅有後面接的參數
A 設定了A這個屬性,這個檔案或目錄的存取時間atime(access)將不可被修改。
S 將數據寫入磁盤當中避免數據流失
a 設置a以後,這個檔案只能增長數據,不能刪除數據
c 設置這個屬性以後,將會自動壓縮文檔
i 可讓一個檔案不能被刪除、更名、設定連結也沒法寫入或新增資料。
等等..
比較經常使用的是a和i
複製代碼

案例:

root@ubuntu:~/tmp# touch attrtest
root@ubuntu:~/tmp# chattr +i attrtest
root@ubuntu:~/tmp# rm attrtest
rm: cannot remove `attrtest': Operation not permitted

 

如何查看隱藏屬性?
答:經過lsattr指令
案例:

root@ubuntu:~/tmp# lsattr attrtest
-----a-----------e- attrtest
root@ubuntu:~/tmp# chattr -a attrtest
root@ubuntu:~/tmp# lsattr attrtest
-----------------e- attrtest

 

如何修改文檔權限?

 答:經過執行chmod來修改

案例:

複製代碼
root@ubuntu:~/tmp# touch attrtest
root@ubuntu:~/tmp# chmod 777 attrtest
root@ubuntu:~/tmp# ll
total 16
drwxrwxr-x  4 jiqing9006 jiqing9006 4096 2013-06-05 17:03 ./
drwxr-xr-x 26 jiqing9006 jiqing9006 4096 2013-06-05 15:21 ../
-rwxrwxrwx  1 root       root          0 2013-06-05 17:03 attrtest*
drwxrwxr-x  5 jiqing9006 jiqing9006 4096 2013-06-04 15:24 mvtest/
-rw-rw-r--  1 root       root          0 2013-06-05 16:22 test1
drwxrwxr-x  2 root       root       4096 2013-06-05 16:20 test2/
-rw-r--r--  1 root       root          0 2013-07-03 02:02 testtouch
複製代碼

 

如何搜索文檔?

答:一般先使用whereis或者locate來檢查,若是真的找不到,才以find來搜索。whereis和locate是利用數據庫來搜索數據,因此至關的快,並且沒有實際的搜索硬盤,比較省時間。

而find速度慢,也操做硬盤了。

案例:

which搜尋執行檔

root@ubuntu:~/tmp# which passwd
/usr/bin/passwd
root@ubuntu:~/tmp# which passwd -a
/usr/bin/passwd

whereis搜尋特定檔案

root@ubuntu:~/tmp# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1ssl.gz /usr/share/man/man1/passwd.1.gz

-b只找binary檔案

-m只找manual下面的檔案

-s只找source

root@ubuntu:~/tmp# whereis -b passwd
passwd: /usr/bin/passwd /etc/passwd
root@ubuntu:~/tmp# whereis -m passwd
passwd: /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1ssl.gz /usr/share/man/man1/passwd.1.gz

tips:

基本上 Linux 天天會針對 Linux 主機上全部檔案的所在進行搜尋數據庫的更新, 更新的程序就是 
updatedb。固然,也能夠直接使用 /usr/bin/updatedb 來更新數據庫檔案呢!

locate

root@ubuntu:~/tmp# locate passwd
/etc/passwd
../var/lib/dpkg/info/passwd.postinst
/var/lib/dpkg/info/passwd.preinst

find 查詢硬盤了

複製代碼
root@ubuntu:~/tmp# find /home/jiqing9006 -mtime 0
/home/jiqing9006
/home/jiqing9006/file
/home/jiqing9006/.viminfo
/home/jiqing9006/tmp
/home/jiqing9006/tmp/test2
/home/jiqing9006/tmp/mvtest/demo
../home/jiqing9006/.cache/zeitgeist/daemon.log.2013-06-04
/home/jiqing9006/.cache/zeitgeist/daemon.log
find: `/home/jiqing9006/.gvfs': Permission denied
複製代碼

上述指令表示查詢24小時內更改的文件,0表示從當前到24小時前。

find / -mtime 3 表示三天前的24小時內。

複製代碼
找出檔名爲 passwd 這個檔案
[root@linux ~]# find / -name passwd
# 利用這個 -name 能夠搜尋檔名啊!

找出系統中,大於 1MB 的檔案
[root@linux ~]# find / -size +1000k
# 雖然在 man page 提到可使用 M 與 G 分別表明 MB 與 GB,
# 不過,俺卻試不出來這個功能~因此,目前應該是僅支持到 c 與 k 吧! 
複製代碼

 

小結:
什麼是絕對路徑與相對路徑? 

絕對路徑的寫法爲由 / 開始寫,至於相對路徑則不禁 / 開始寫!此外,相對路徑爲相對於目前
工做目錄的路徑! 


如何更改一個目錄的名稱?例如由 /home/test 變爲 /home/test2  

mv /home/test /home/test2  


PATH 這個環境變量的意義?  

這個是用來指定執行檔執行的時候,檔案搜尋的目錄路徑。  


umask 有什麼用處與優勢?  

umask 能夠拿掉一些屬性,所以,適當的定義 umask 有助於系統的安全, 由於他能夠用來創建
預設的目錄或檔案的權限。  
當一個使用者的 umask 分別爲 033 與 044 他所創建的檔案與目錄的權限爲什麼?  
在 umask 爲 033 時,則預設是拿掉 group 與 other 的 w(2)x(1) 權限,所以權限就成爲『檔
案 -rw-r--r-- , 目錄 drwxr--r-- 』而當 umask 044 時,則拿掉 r 的屬性,所以就成爲『檔
案 -rw--w--w-,目錄 drwx-wx-wx』  


什麼是 SUID ?  

當一個指令具備 SUID 的功能時,則當其它人使用這個指令時,該程序將具備指令擁有者的權限。

 

當我要查詢 /usr/bin/passwd 這個檔案的一些屬性時,可使用什麼指令來查詢?  

ls -al, file, lsattr  


嘗試用 find 找出目前 linux 系統中,全部具備 SUID 的檔案有哪些?  

find / -type f -perm -4000 -print  
相關文章
相關標籤/搜索