linux下檔案的幾種類型:目錄,符号連結、套接字檔案....。要注意,說到的檔案類型是一個不一樣的概念。linux下檔案的類型不是字尾名上進行差別。
"-"表示該檔案是一個普通類型的檔案。什麼是普通類型檔案?你得記住linux下幾種類型的檔案。不屬于那裡面列出的,就屬于普通類型檔案了。
chmod 77- 檔案名
讀 4 寫 2 執行 1
專業點的描述:chmod改變權限的方式分為:符号模式(就是使用了使用者符号進行表示)和絕對模式(就是"chmod 777 檔案名"的形式)
絕對模式的一點注意:實際上它是按照8進制進行計算的。而像讀權限是4這樣的表示方式,隻是因為總結出來的一種快捷方式。這樣不用去記8進制了。
chmod 74- yoa 這裡錯誤了。沒注意到一個地方:在絕對模式下,如果想設定沒有任何權限,不是使用"-",而是讓其值為0即可。
針對目錄擁有可執行權限與針對檔案擁有可執行權限,由于對象不同。所表現的概念是不同的。下面差別:
讀權限:檔案則表示可以檢視檔案内容。目錄表示能列出目錄。其實讀目錄,也就是列出該目錄中有什麼内容。本質是一樣的。讀權限表示可以讀内容,而想想目錄的内容是什麼呢?打開目錄内容,就是列出目錄。實際表現是:使用ls能夠列出所有内容資訊。如果沒有該權限。則不行。
寫權限:檔案表示可以修改檔案内容和删除檔案(注意這點)。由于寫權限可以對目标的内容進行修改。如果将目錄的内容看成是所有檔案和子檔案夾的組合。那麼寫權限對于目錄而言,就是能夠在目錄下建立檔案(疑問:删除目錄下的檔案也算嗎?)。
執行權限:針對檔案就是當成可執行檔案進行解析。那麼針對目錄,就是能否進入目錄裡面去。
我應該想到,既然在linux所有檔案都涉及到權限。而linux中檔案包含七種類型(目錄和普通檔案隻是其中一種類型)。,實際上,檔案權限隻針對檔案和目錄表現上有差別。其他的不管你是普通檔案,還是塊裝置檔案、套接字檔案。隻要與目錄進行差別了,權限對他們起作用都一樣的
建立一個檔案是,權限設定有個預設模式:就是你不做設定。系統會自動設定擁有的權限是rw。而沒有x權限(這是出于安全考慮,想想,假如别人把這個檔案當成程式進行執行,會産生不可預料的效果)
然後,這裡就可以明白umask指令了。它就是設定和顯示檔案的預設權限的。
軟連結術語:
符号連結包括軟連結和硬連結。
符号連結就是一個指針,執行一個具體的對象。跟windows環境比較,就類似于"快捷方式"的功能
軟連結的辨別或者表現特征:1.使用ls檢視資訊中顯示檔案的類型是l 2.檔案名顯示類似 "->"的形式
umask學習:
1.可以這樣解釋:系統為每個使用者配置設定了一個umask值。這樣,使用者所建立的檔案預設擁有哪些權限,就是根據umask值确定的。
2.輸入:umask 顯示:002 。的含義是:目前使用者(我)所擁有的umask值是002。也就是其建立的檔案對應擁有什麼樣的權限
3.umask的值計算方法記住兩點:一、檔案的最大權限是6。目錄的最大權限值是7 二、就是拿掉umask值中對應的權位。得到的就是檔案和目錄所擁有的權限。
umask值是3 。可以這樣推測:3=2+1.那麼 就要去掉寫權限和執行權限。得到的對象所擁有的權限是讀權限。
看了上面例子,那麼不要這樣了解了:檔案最大權限 6-3=3 那麼得到的權限應該是寫權限和執行權限。這麼了解,導緻計算的結果錯誤了。
多用吧。就會明白的。還有看列出的那個表。
c h o w n指令總結:
1.幹什麼用的?
change own的縮寫。作用是改變一個檔案的屬主(所有者)。通俗點,就是改變檔案的所有權。
2.指令先要看得懂
chown 使用者名 檔案
3.chgrp指令跟chown一樣。隻是是改變一個檔案的所屬組。那個使用者名變成了組名
這裡想到一個疑問:假如一個檔案所有權是b使用者。而b使用者所屬組是g。那麼該檔案上是否是屬于g組呢?
chgrp是change group的縮寫。應該是專門針對檔案屬于某個組使用的。如果檔案上所有權是一個使用者,而不是一個組。那麼使用chgrp指令起不到作用。你無法改變其所屬組的。
suid/guid使用的比較少。隻需要了解就行了。原因是出于安全性考慮。一般linux廠商都不支援該功能。
第一章(檔案安全與權限)總結:
1.主要講了檔案分哪幾種類型。在linux上檔案擁有哪些權限,如何使用指令配置設定檔案權限。
2.介紹的指令包括:chmod、umask、chown
3.附帶涉及到的知識有:chmod指令設定分為符号模式和絕對模式。怎麼顯示目前使用者所屬組。軟連結使用。
第二章:find指令和xargs
1.find指令功能就相當于windwos系統中的查找。find指令非常耗費系統時間。尤其是在根目錄下進行查找。
2.find指令就是的參數位置:find ~ -name "*.txt" -print; 查找範圍 查找選項(按什麼進行查找) 查找對象 附加選項。
猜測:find程式應該是預設按固定位置進行解析。學了java才明白。指令行的形式傳遞參數,所有的參數儲存在一個args數組中。一次讀取數組的每個元素。哪個下标對應什麼,都預定義好了的。比如第一個作為查找範圍,第二個就使用if進行判斷。根據不同的值進入對應的語句塊中。
第三章:背景執行指令
1.crontab條目:crontab檔案中的條目。一行就是一個條目,表示一個操作。
2.crontab檔案:每個檔案要送出給cron程序。使用指令:crontab davecron;這樣cron程序能夠知道
3.cron程序:
4.crontab指令向cron程序送出檔案。而at指令是向程序送出作業,稍後運作。
5.每個指令執行後面加上&符号。那麼表示将該指令在背景進行運作。這樣就不占用螢幕。示例:指令 &
6.nohup指令:no hang up 。表示不挂起。在退出系統前,想讓指令繼續在背景執行。使用該指令。
7.将腳本的輸出重定向到一個檔案: 腳本 > 檔案名 2>1&
第三章總結:
主要内容:主講了在背景執行的指令使用。cron程序。crontab檔案的條目設定。如何建立crontab檔案并送出給cron程序。如何向cron程序送出一個作業。将一個腳本的輸出結果定向到一個檔案。
學習到的指令:crontab(向cron程序送出一個crontab檔案)、at(向cron程序送出一個作業)、nohup(送出一個作業。在我退出的時候,不挂起該作業)、ps(檢視程序号的相關資訊)、kill(殺死程序)
第四章總結 主要講了替換中用到元字元介紹,使用方式。
元字元:像替換中用到的"?","*"這些用來替代的符号(對一個集合的字元用一個符号進行替代)。就是元字元。\
學過正則中的符号,就知道那些就是元字元了。
第五章:shell 輸入與輸出
原來:腳本執行結果,如果不指定輸出到什麼地方,預設總是會輸出到螢幕的
第六章:指令執行順序
&&表示左邊指令執行成功。才執行右邊指令。代碼示範:mv /apps/bin /apps/dev/bin && rm -r /apps/bin
|| 表示左邊執行失敗,就執行右邊指令。
小結:主要講了&&和||兩個符号的知識與作用。{}是子shell中執行。()是在目前shell執行。這個具體怎麼了解?
"|"有的時候表示同時執行。
第八章:grep家族
我們常常使用的 ls -l | grep 'd' 原來是這樣的意思:使用左邊的結果作為右邊的輸入。原來grep指令是需要提供查找的檔案名,也就是範圍。現在這種方式,就将左邊的結果視為檔案即可。
什麼時候使用單引号,何時使用雙引号:查找具體的字元時,使用雙引号,按照模式進行比對的時候,使用單引号
第九章:awk介紹
awk '{}' {}裡面常常是具體的動作
awk指令專門 用來操作檔案的。搜尋查詢之類的操作
awk視為一個單獨的shell指令子產品,它有着自己的指令格式。比如有if判斷語句,可以實作邏輯業務
第十章:sed用法介紹
sed跟vi一樣,是一個文本編輯器。唯一差別在于:sed是一個非互動性文本編輯器。非互動性,不需要獲得輸入資訊,可以在背景執行操作。
使用它的好處在于:可以不在現場,節省使用者時間。