Linux文件系統

Linux文件系統

根目錄下的文件

  • /
    ├── bin 存放用戶使用的基本命令(可執行程序,二進制文件) 不能單獨分區的
    ├── boot 跟內核有關的文件 grub 內核和BootLoader
    ├── cgroup 用來資源限制資源隔離 docker 容器化
    ├── dev device 設備文件

    • b block device 塊設備 硬盤或者CD-rom 隨機讀寫
      c character device 字符設備 傳真 鼠標 打字機 順序讀寫
  • ├── 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 臨時文件
  • └── 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/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 以人類可讀的方式將文件或者目錄大小顯示出來
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 [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

(0)
ss
上一篇 2017-04-01
下一篇 2017-04-01

相關推薦

  • linux文件系統

      ?文件系統: linux區分大小寫: ? ? ? ? ? ? ? ? ? ?標準的linux文件系統xfs ext(如ext4),嚴格區分大小寫,例:MAIL,Mail,mail;而windows是不那么敏感的。 這是因為文件系統的格式不同。比如:U盤的Fat32在linux中是vfat文件系統就可不區分大小寫 不同文件系統,下面顯示一個隱藏文…

    Linux干貨 2017-11-19
  • 22期第十周課堂練習

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情)     2、為運行于虛擬機上的CentOS 6添加一塊新硬件,提供兩個主分區;       (1) 為硬盤新建兩個主分區;并為其安裝grub;       (2) 為硬盤的第一個主分區提供內核和ramdi…

    Linux干貨 2016-10-24
  • DNS和BIND配置(第二部分)

    接第一部分課后練習 三、課后練習: 2、配置反向解析: 步驟一:寫主配置文件:改成與上個實驗相同,也可以自己寫一個簡單的配置文件,如下: [root@localhost tmp]# cat named.conf.new options { directory  "/var/named&qu…

    Linux干貨 2016-10-17
  • mysql進階篇(三種備份方法總結:lvm, mysqldump, xtrabackup)

    二進制日志詳解:     二進制日志通常作為備份的重要資源,所以再說備份之前先總結一下二進制日志的相關內容      1. 二進制日志的內容         引起mysql服務器改變的任何操…

    Linux干貨 2015-12-10
  • Linux Sysadmin–part1

    一、創建一個10G分區,并格式為ext4文件系統; 1、要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl; 2、掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; ###創建10G分區 ~]# fdisk /dev/sdb Command (m for help): n P…

    2017-09-04
  • VSFTP通過pam_mysql插件創建進行基于mysql的虛擬用戶

      1、對pam_mysql-0.7RC1包進行編譯安裝 編譯安裝環境配置 編譯安裝所需的包如下: ~]#yum -y groupinstall "Development Tools" "Server Platform Development" ~]#yum -y install mariadb-server…

    Linux干貨 2016-11-14

評論列表(1條)

  • renjin
    renjin 2017-04-05 15:42

    主要總結了linux 的文件系統的結構,及linux下常用的一些命令,內容寫的挺好的,排版也挺不錯的

欧美性久久久久