Linux文件系統
根目錄下的文件
-
/
├── bin 存放用戶使用的基本命令(可執行程序,二進制文件) 不能單獨分區的
├── boot 跟內核有關的文件 grub 內核和BootLoader
├── cgroup 用來資源限制資源隔離 docker 容器化
├── dev device 設備文件-
b block device 塊設備 硬盤或者CD-rom 隨機讀寫
c character device 字符設備 傳真 鼠標 打字機 順序讀寫
-
b block device 塊設備 硬盤或者CD-rom 隨機讀寫
-
├── etc 各種系統包括應用的配置文件
├── home 每個用戶的家目錄 而且每個用戶默認的工作目錄
├── lib 程序包括系統所依賴的一些共享庫文件及內核所依賴的模塊文件
├── lib64 系統程序所依賴的庫文件 .so 結尾,(Windows .dll)
├── lost+found 垃圾回收站
├── media 光盤或者U盤掛載點 媒體介質掛載點
├── misc 雜項 不好歸類的東西
├── mnt 臨時文件文件掛載點 新建一個分區
├── net 網絡文件
├── opt 第三方的應用安裝位置 nginx tomcat Apache
├── proc 偽文件系統 硬盤不存在,只存在于內存中,記錄系統或者進程的運行信息 cpuinfo
├── root root的家目錄
├── sbin 存放管理類命令 也不能單獨分區
├── selinux 與selinux相關文件或者記錄
├── srv 系統運行產生的一些文件
├── sys 偽文件系統 記錄系統硬件的一些運行信息
├── tmp 雜項,臨時文件以及應用產生的臨時文件
├── usr 誤以為user,Unix software resource-
/lib /lib64 存放庫文件
/bin /sbin 存放系統的一些二進制文件(可執行文件)
/local 用來存放第三方的應用或安裝本地應用程序
bin etc games lib lib64 libexec sbin share etc
/share 用于存放幫助
/etc/ 配置文件
/include 主要用來存放頭文件,對第三方應用做二次開發可能會用到
/tmp 臨時文件
-
/lib /lib64 存放庫文件
-
└── var 日志存放以及應用產生的一些文件或者臨時文件 郵件隊列
-
/var/log/message 系統日志
/var/log/boot.log 系統啟動時候產生的一些日志
/var/log/dmesg 輸出內核或者是硬件的一些有效信息,可以使用dmesg
/var/log/mail.log 郵件產生的日志
/var/log/cron 系統和我們自定義的計劃任務的日志
/var/log/btmp | wtmp用來記錄系統登錄成功或者失敗的用戶(跟系統安全相關的)
使用last(登錄成功的用戶及IP)和lasb(登錄失敗的用戶及IP)命令查看
/var/log/secure 記錄用戶登錄信息
/var/log/lastlog
/var/lib/mysql MySQL數據存放目錄
/var/mail 郵件存放目錄 由于郵件服務 此目錄可能會滿 rsync(命令)使用一個空目錄來同步有問題的目錄
/var/spool/cron 跟計劃任務相關的內容
-
/var/log/message 系統日志
-
注:
/var/log/dmesg:
dmesg 查看啟動時候的內核日志信息
last(登錄成功的用戶及IP)
lastb(登錄失敗的用戶及IP)
生產環境服務器暴露公網之中,經常會有網上的服務器去嘗試登錄我們的服務器,這時候需要用到
lastb去查看哪些地址的服務器在掃我們的機器,然后把這些IP加入host_deny iptables 中。
/sys : sysfs提供了一種比 /proc 更理想的途徑,主要在于為管理Linux設備提供統一模型的接口
Linux上的應用程序的組成部分:
二進制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
庫文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
幫助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
文件類型:
-
普通文件
d directory目錄文件
b 塊兒設備 block :硬盤
c 字符設備 character :鍵盤
l 符號鏈接文件
p 管道文件 pipe :進程間通信可能會管道
s 套接字文件socket :比如MySQL的套接字 本地客戶端和服務器端互相通信使用socket,避免通過網絡這種方式
-rw-r–r–. 1 root root 13 Mar 27 14:21 hello
drwxr-xr-x. 3 root root 200 Mar 27 08:09 snd
brw-rw—-+ 1 root cdrom 11, 0 Mar 27 08:09 sr0
crw-rw—-. 1 root root 10, 231 Mar 27 08:09 snapshot
lrwxrwxrwx. 1 root root 15 Mar 27 08:09 stderr -> /proc/self/fd/2
[root@CentOS68 ~]# ll /var/lib/mysql/mysql.sock
srwxrwxrwx. 1 mysql mysql 0 Mar 27 09:53 /var/lib/mysql/mysql.sock
目錄管理類命令:cd 、pwd 、ls 、mkdir 、rmdir 、tree
cd
-
change directory,改變工作目錄
cd 、cd~ : 默認情況下是切換到自己的家目錄下面
cd ~ USERNAME :切換到指定用戶的主目錄
cd -:在上一個目錄和當前目錄來回切換; cd – 相當于 cd $OLDPWD
cd . 和 cd .. :相對路徑,表示當前目錄和上一級目錄
pwd
-
pwd [OPTION]…
顯示當前目錄
ls
-
ls [OPTIONS] [ARG]
d rwxr-xr-x. 2 root root 4096 Mar 22 22:23 Downloads
– rw-r–r–. 1 root root 51 Mar 24 10:02 hello.sh
文件類型 、 文件權限 、 鏈接數量 、 屬主和屬組 、 文件大小、 最近的修改日期(mtime) 、文件名稱或者目錄名稱-
-a 列出所有隱藏文件和目錄
-r 逆序顯示
-R 把當前目錄下的目錄的所有內容列出來(遞歸)
-d 顯示當前目錄的詳細信息,不顯示目錄下的內容
-A 列出所有隱藏文件和目錄 除了.和..
-l 文件和目錄名分行顯示
-S 把文件目錄按照大小從大到小來排列
-t 把文件和目錄按照最近修改時間排列 從最新到最老的順序排列
-u 訪問時間排序
-h 以人類可讀的方式將文件或者目錄大小顯示出來
-
-a 列出所有隱藏文件和目錄
mkdir
-
mkdir [OPTION]… DIRECTORY… 創建一個目錄
-p 表示存在時不返回錯誤,不存在時,自動創建所需的各目錄,同時創建父目錄和子目錄
-v 顯示其過程詳細信息
-m MODE 創建目錄時直接指定目錄權限mkdir -pv /tmp/a/b/c/
rmdir
-
rmdir [OPTION]… DIRECTORY…
刪除空白目錄
-v 顯示執行過程
注:由rm -r 所取代, 遞歸刪除所有目錄和文件
tree
-
目錄結構查看
-d 顯示目錄
-L 指定層級數目
-P pattern :只顯示指定pattern匹配到的路徑tree -L 1 -d /
文件內容查看:more、less、head、tail、cat、file、
more
-
more [options] file [ … ]
-d : 顯示翻頁及退出提示
less
- less : 一頁一頁查看文件內容
tail
-
tail [OPTION]… [FILE]…
顯示文件后面的內容
tail -n 10
tail – 10
-f 實時查看文件的最新變化 ; 排查故障的時候 ===tailf
-c # :指定獲取后#字節的內容
head
-
head [OPTION]… [FILE]…
顯示文件前面的內容
head – n 10 文件名
head – 10 文件名
-c # :指定獲取后#字節的內容cat 文件名 | head
題目:統計日志中頻繁訪問的前10個IP
cat /var/log/httpd/access_log | cut -d” ” -f1 | sort | uniq -c | sort -nr | head
cat
-
cat [OPTION]… [FILE]…
查看一個文件
-E: 顯示行結束符 $
-n: 對顯示出的每一行進行編號
-A:顯示所有控制符
-T: –show-tabs 顯示制表符
-v : –show-nonprinting 顯示其他的非打印字符
-b:非空行編號
-s:壓縮連續的空行成一行cat -sn changping.log
頻繁使用的是 cat -An 文件名 -
tac 將文件內容倒序排列顯示出來
file
-
file [文件路徑]
文件類型查看
文件的時間戳管理工具
- 查看文件狀態(屬性信息或者元數據): stat
[s@magedu test]$ stat hello
Access: 2017-04-01 10:50:30.955996678 +0800 Modify: 2017-04-01 10:50:30.955996678 +0800 Change: 2017-04-01 10:50:30.955996678 +0800
-
可通過touch來修改時間戳 :
touch [OPTION]… FILE…
-a :修改atime
-m :修改mtime
-t :[[CC]YY]MMDDhhmm[.ss] :修改指定時間戳為某時間
注:當touch一個不存在的文件時,會先創建一個空文件。如果不想創建一個空文件,則使用- c選項,如 touch -c a.txt ,即如果文件不存在,則不創建該文件。
文本處理工具:wc、cut 、sort 、uniq
wc
-
wc [OPTION]… [FILE]…
字符統計
-l :lines 統計行數
-w:words統計單詞個數
-c:character 統計字符個數
[root@CentOS68 ~]# cat /etc/passwd | wc -l 50 [root@CentOS68 ~]# wc -l /etc/passwd 50 /etc/passwd
cut
-
cut OPTION… [FILE]…
文件內容切割
-d :指明分隔符
-f :指明需要取出的字段
cut -d: -f1,3-5,7 /etc/passwd
sort
-
sort [OPTION]… [FILE]…
-r 逆序
-n 以數值大小進行排序
-f 忽略字符串大小寫
-t “c” 以后面的字符作為分隔符
-k# 選擇某個字段 進行排序
-u 去重(除去連續重復的行,只保留一次)
uniq
-
uniq [OPTION]… [INPUT [OUTPUT]]
-c 顯示每行重復出現的次數
-d 僅顯示重復
-u 顯示不重復
diff
-
diff [OPTION]… FILES
比較兩個文件的異同
diff -u a文件 b文件 > a.diff
path -b b < b.diff
diff -u foo.conf-broken foo.conf-works > foo.patch
$ patch -b foo.conf-broken foo.patch
1、找出ifconfig “網卡名” 命令結果中本機的IPv4地址
[root@magedu ~]# ifconfig eth1 | head -2 | tail -1 | cut -d “:” -f2 | cut -d ” ” -f1
172.16.252.143
2、查出分區空間使用率的最大百分比值
[root@magedu ~]# df | tail -5 | awk ‘{print 5}’ | sort -t” ” -rn -k2
/dev/sr0 100%
/dev/sda2 12%
/dev/sda1 10%
tmpfs 1%
/dev/sda5 1%
3、查出用戶UID最大值的用戶名、UID及shell類型
[root@magedu ~]# cat /etc/passwd | cut -d “:” -f1,3,7 | sort -t: -nr -k2 | head -1
nfsnobody:65534:/sbin/nologin
文件管理:cp、mv、rm
cp
-
cp [OPTION] … [-T] SOURCE DEST
cp [OPTION] … SOURCE … DIRECTORY
cp [OPTION] … -t DIRECTORY SOURCE…
-i :交互式
-r:遞歸復制目錄及內部的所有內容
-a:歸檔,相當于 -dR –preserve=all
-d:表示不跟蹤符號鏈接所指向的原文件
-p:保持原有文件的屬性信息
-f:強制覆蓋
-v:顯示過程
mv
-
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION] … SOURCE … DIRECTORY
mv [OPTION] … -t DIRECTORY SOURCE…
-i:交互式
-f:強制
rm
-
rm [OPTION] … FILE …
-i:交互式
-f:強制
-r:遞歸
原創文章,作者:s,如若轉載,請注明出處:http://www.www58058.com/72301
主要總結了linux 的文件系統的結構,及linux下常用的一些命令,內容寫的挺好的,排版也挺不錯的