Linux目錄配置
文件種類:
[-] 普通文件 有純文本文件(regular file)、二進制文件(ASCⅡ)、數據格式文件(data)。
[d] 目錄
[l] 連接文件
[b] 塊設備文件
[c] 字符設備文件
[s] 套接字 (sockets) 數據接口文件 , 通常在/var/run目錄中可以看見這種文件類型。
[p] 管道 (FIFO, pipe) first-infirst-out
Linux 文件擴展名:
*.sh 腳本或腳本批處理文件(scripts)
*Z *.tar *.tar.gz *.zip *.tgz 經過打包的壓縮文件
*.html *.php 網頁相關文件
Linux 目錄:
/bin binary普通用戶和管理員都能用的可執行的命令,可執行的命令
/boot 引導文件,系統啓動,kernel,bootloader(grub)
/sbin 管理類的文件,通常只有管理員能用
/dev 設備文件所在目錄
/etc 配置文件
/etc/sysconfig, 服務額外配置文件,及網絡設備相關配置文件
/etc/init.d, 服務的管理腳本
/home 用戶的主目錄 ~:代表目前這個用戶的主文件夾; ~dmtsai:代表dmtsai的主文件夾。
/lib 庫文件
/media 可刪除的設備,包括軟盤、光盤、DVD等設備。 /media/floppy, /media/cdrom
/mnt 暫時掛載某些額外的設備。
/opt 可選的,有些第三方軟件,把此目錄當作默認安裝位置,Nessus, Oracle
/root 管理員root的主文件夾
/tmp 臨時文件存放位置
/misc 雜項
/proc 僞,內存中的內核相關信息的映射
/sys 比如像磁盤這樣存儲設備或某些總線設備的驅動程序相關屬性信息
/srv 服務運行中中間文件的存放位置
/var, 經常發生變化的文件存放位置
/var/log
/var/run
/var/mail
/usr 基本日常管理
/usr/bin
/usr/sbi
/usr/etc
/usr/lib
/usr/include 頭文件
/usr/local (第三方軟件)
/usr/local/bin
/usr/local/sbin
/usr/local/etc
/usr/local/lib
/lost+found /disk/lost+found 設備文件
/proc 虛擬文件系統
目錄與路徑
絕對路徑與相對路徑
絕對路徑:由根目錄(/)開始寫起的文件名或目錄名稱,例如:/home/dmtsai/.bashrc。
相對路徑:相對於目前路徑的文件名寫法,例如:./home/dmtsai或../../home/dmtsai等。
.:代表當前的目錄,也可以用./來表示。
..:代表上一層目錄,也可以用../來表示。
文件與目錄管理
pwd 顯示當前目錄
cd 切換目錄
ls 查看文件與目錄
-a 全部的文件,連同隱藏文件
-d 僅列出目錄本身
-l 列出長數據串,包含文件的屬性與權限等數據
-i 列出inode號碼
-n 列出UID與GID,而非用戶與用戶組的名稱
創建一個空白文件:
# touch
-a 僅修改訪問時間
-m 僅修改mtime
-t [[CC]YY]MMDDhhmm.ss
-c 僅修改文件的時間,若文件不存在則不創建新文件
複製文件:
# cp SRCFILE DEST
# cp SRCFILE...DEST
-a, 相當於-rp。
-f,強制複製。
-i,交互式。
-p,連同屬性一起復制。
-r(R),可複製目錄。
創建一個新目錄:
# mkdir /tmp/x/y/z
-v verbose 詳細信息
-p parents 幫助你直接將所需要的目錄(包含上層目錄)遞歸創建起來。
刪除一個空目錄:
# rmdir
文件刪除命令:
# rm
-r(R) 遞歸刪除目錄中的內容
-f 強制刪除
-v 顯示刪除內容和類型
移動文件或目錄:
mv SRCFILE DEST
mv SRCFILE...DEST
-f 強制移動
-u 若目標文件已經存在,且source比較新,纔會更新(update)。
文件內容查閱
cat 由第一行開始顯示文件內容(顯示全部內容) 不能分頁顯示
-n 顯示行號
-E 顯示行結束符 --show-ends
-v 顯示非打印字符
-T 顯示打印字符
tac 從最後一行開始顯示,tac是cat的倒寫形式
nl 顯示的時候,順便輸出行號
more 一頁一頁地顯示文件內容
less 與more類似,但可以往前翻頁,可以一行一行地顯示
head 只看頭幾行
tail 只看結尾幾行
-f 不退出一直查看文件 ( Ctrl+c 退出 )
od 以二進制的方式讀取文件內容
wc words counter
-l 行數 -w 統計單詞數 -c 字符數
cut 切割之後進行排序 /etc/passwd
cut -d : -f1-7
cut -d : -f1,7
cut -d'' -f1-7
sort 按字母排序顯示
-r 逆序顯示
-n 以數值大小進行比較
-f
-u 如有相同的行則只顯示一次
uniq 排完序才能使用 、、、、與sort一起使用
-u 只顯示不重複的行
-d 只顯示重複的行(顯示一次)
-c 顯示重複的次數
# tr SET1 SET2 轉換字符
# tr 'abc' 'ABC' /etc/passwd
# tr -d 'abc' 刪除字符
文件與目錄的默認權限與隱藏權限
文件默認權限:
umask 0022
uamsk -S u=rwx,g=rx,o=rx
文件隱藏屬性:
chattr
lsattr
命令與文件的查詢
file 查看文件類型
which 腳本文件名的查詢 尋找執行文件
文件名的查找:
whereis 尋找特定文件
-b 只找二進制格式的文件
-s 只找soerce源文件
locate 非實時 非精確,快速 依據/var/lib/mlocate內的數據庫記載,找出用戶輸入的關鍵字文件名
find 實時 精確 速度慢 從磁盤查找
# makewhatis
# whatis
# locate keyword
# updatedb 手動生成locate所依賴的數據庫
locate -n 10 keyword 查找前十行
locate -c 10 keyword 統計字符
find [dir1,...] [criteria,...] [action...]
find [-H] [-L] [-P] [path...] [expression]
find /etc -name "passwd"
Criteria:
-name "" 嚴格區分大小寫
支持globbing方式的文件名通配
# find /etc -name "passwd*"
# find /etc -name "passwd?"
# find /etc -name "*passwd*"
-iname "" 不區分文件名中的大小寫
-regex "PATTERN"
-user UID
# find /tmp -user redhat
# ls -l `find /tmp -user redhat` 命令替換
-group GID 指定組名
-uid 按uid查找
-gid 按gid查找
-nouser 查找所有沒有屬主的文件
-nogrouop查找所有沒有屬組的文件
-type (f d l b c s p) 按文件類型查找
# find /tmp -type s
組合條件:
# find /tmp -iname "*LC*" -user redhat
-a
-o
-not
# find /tmp -iname "*LC*" [ -a ] -user redhat
# find /tmp -not -user redhat
# find /tmp -iname "*LC*" -o -user redhat
# find /tmp -not -user redhat -a -not -iname "*LC*"
# find /tmp -not \( -user redhat -o -iname "*LC*" )
-size# 指定文件大小
10M
-10M
+10M
k|M|G
-atime# 3 三天 -3 +3 訪問時間(天)
-mtime 修改時間(天)
-ctime 改變時間(天)
-amin# 3 三分鐘 -3 +3 訪問時間(分鐘)
-mmin 修改時間(分鐘)
-cmin 改變時間(分鐘)
-perm 根據權限查找
per 755 每一類用戶都必須滿足
per /755 (+755) 任何一類用戶權限滿足都可以
per -755 每一類用戶有一權限位必須滿足
/mode: 任何一類用戶某一個權限符合條件 0 : 不作考察
-mode:所有類別用戶所有權限都符合條件
xarges
# find ./ -perm 644 | xarges chmod 755
例如:
1,查看/var目錄下屬主爲root並且屬組爲mail的所有文件:
# find /var -user root -group mail
2,查看/usr/目錄下不屬於root,bin,或student的文件:
# find /usr -not -user root -a -not -user bin -a -not -user student
# find /usr -not \( -user root -o -user bin -o -user student )
-not == !
3,查看/etc目錄下最近一週內內容被修改過且不屬於root及apache用戶的文件# find /etc -mtime -7 -a -not \( -user root -o -user apache )
4,查找當前系統上沒有屬主或屬組且最近一天內曾被訪問過的文件,並將其屬主屬組均修改爲root:
# find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;
5,查找/etc目錄下大於1M的文件,並將其文件名寫入/tmp/etc.largefiles文件 中:
# find /etc -size +1M -exec basename {} >> /tmp/etc.largefiles \;
6,查找/etc目錄下所有用戶都沒有寫權限的文件,顯示其詳細信息;
# ls -l `find /etc -not -perm /222`
# find /etc -not -perm /222 -ls
Man的章節:
1,用戶命令
2,系統調用
3,庫調用
4,特殊文件說明
5,文件格式(常指配置文件)
6,遊戲
7,雜項
8,管理命令
#whatis command 查看章節
#man 章節號 command
#man 章節號 文件名
#manwhatis
#makewhatis
Man -M/usr/local/apache/man httpd
EXAMPLES舉例
Man mdadm
翻屏: space鍵,往文件尾部翻一屏,或向上翻 -----b
Enter鍵,往文件尾部翻一行,或向上翻 -----k
G 跳轉文件尾部
1G 跳轉文件首部
字符串搜索: /keyword 由首部向尾部搜 n 下一個 : N 下一個(反方向)
/keyword 由尾部向首部搜