1.stat命令和時間戳 詳解
背景: 在Linux中,沒有文件創建時間的概念。只有文件的訪問時間、修改時間、狀態改變時間。也就是說不能知道 文件的創建時間。但如果 文件創建后就沒有修改過,修改時間=創建時間;如果文件創建后,狀態就沒有改變過,那么狀態改變時間=創 建時間;如果文件創建后, 沒有被讀取過,那么訪問時間=創建時間,這個基本不太可能。 時間戳:每一個文件都有3中時間(稱為時間戳timestamps),對這3種時間,很多時候容易混淆不清。 Access time(atime):是指查看文件(內容)的時間,所謂取用,常見的操作有:使用編輯器查看文件內 容,使用cat命令顯示文件內容,使用cp命令把該文件(即來源文件)復制成其他文件,或者在這個文件上運 用grep sed more less tail head 等命令,凡是讀取而不修改文件的操作,均衡改變文件的Access time. Modify time(mtime):是指修改文件內容的時間,只要文件內容有改動(如使用轉向輸出或轉向附加的 方式)或存盤的操作,就會 改變文件的Modify time,平常我們使用ls –l查看文件時,顯示的時間就是Modify time Change time(ctime):是指文件屬性(元數據)或文件位置改動的時間,如使用chmod,chown,mv指令集使 用ln做文件的硬是連接,就會改變文件的Change time. stat命令:查看文件狀態 功能說明:顯示inode內容 語 法:stat [文件或目錄] 補充說明:stat以文字的格式來顯示inode的內容 [root@localhost ~]# stat install.log File: "install.log" Size: 47326 Blocks: 104 IO Block: 4096 普通文件 Device: 803h/2051d Inode: 915714 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-19 19:19:11.179998361 +0800 Modify: 2016-07-19 19:38:08.996997327 +0800 Change: 2016-07-19 19:38:31.687997301 +0800 stat -f 顯示了有關文件系統(而非文件)的信息 [root@localhost testdir]# stat -f python_dir/getFTPdir.py File: "python_dir/getFTPdir.py" ID: 78f86a0ed0592c40 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 4819016 Free: 3886210 Available: 3639746 Inodes: Total: 1234576 Free: 1128101
2.touch命令:刷新時間
touch命令用來修改文件時間戳,或者新建一個不存在的空文件 用法:touch [OPTION]... FILE... 選項: -a: 僅改變 atime -m: 僅改變 mtime -r 把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同(touch -r a b 將b的日期設置成a的) -t: 使用指定的日期時間,而非現在的時間。[[CC]YY]MMDDhhmm[.ss] -c: 如果文件不存在,則不予創建
3.cp命令
cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... cp SRC DEST 選項 -i:交互式 -r, -R: 遞歸復制目錄及內部的所有內容; -a: 歸檔,相當于-dR --preserv=all -d: --no-dereference --preserv=links 不復制原文件,只復制鏈接名 --preserv[=ATTR_LIST] mode: 權限 ownership: 屬主屬組 timestamp: links xattr context all -p: 等同--preserv=mode,ownership,timestamp -v: --verbose -f: --force
4.alias別名
為了方便頻繁使用某一命令,Linux系統提供了一個有用的工具叫alias,可以讓我們將一些需要頻繁使用的但又過于冗長的命令設置一個別名,這樣一來,以后只需輸入一個簡短的別名就可以達到同樣的作用
定義: 顯示當前shell進程所有可用的命令別名 ~]#alias 定義別名NAME,其相當于執行命令VALUE ~]#alias NAME='VALUE' 注:在命令行中定義的別名,僅對當前shell進程有效,要想永久有效,要定義在配置文件中: 僅對當前用戶: ~/.bashrc 對所有用戶有效: /etc/bashrc 編輯配置完成后,要重讀配置文件,采用. /PATH/FILE或source /PATH/FILE 刪除: unalias 別名名稱 -a 刪除所有別名 若別名和命令名稱相同,要執行原始命令,不執行別名: \COMMAND 'COMMAND' /PATH/COMMAND (外部命令可用)
5.mv移動或重命名
mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... -i: 交互式 -f: 強制
6.rm刪除
rm [OPTION]... FILE... 常用選項: -i: 交互式 -f: 強制刪除 -r: 遞歸 --no-preserve-root / 強制刪除根
7.目錄操作
tree 顯示目錄樹 -d: 只顯示目錄 -L level:指定顯示的層級數目 -P pattern: 只顯示由指定pattern匹配到的路徑 mkdir 創建目錄 -p: 存在于不報錯,且可自動創建所需的各目錄; -v: 顯示詳細信息 -m MODE: 創建目錄時直接指定權限; rmdir 刪除空目錄 -p: 遞歸刪除父空目錄 -v: 顯示詳細信息
8.file命令
檢查文文件類型,然后確定適當的開放命令或應用程序使用 file [options] <filename>... Option: -b列出文件辨識結果時,不顯示文件名稱。 -c詳細顯示指令執行過程,便于排錯或分析程序執行形 -f列出文件中文件名的文件類型 -F使用指定分隔符號替換輸出文件名后默認的”:”分隔符 -i輸出mime類型的字符串 -L查看對應軟鏈接對應文件的文件類型 -z嘗試去解讀壓縮文件的內容 --help顯示命令在線幫助
9.inode和鏈接 詳解
軟鏈接其他特點:
軟鏈接以l開頭 軟鏈接權限為777 軟鏈接文件大小為原文件路徑字符數
概念
1.linux上目錄結構
/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放于此目錄 /bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序 /sbin:管理類的基本命令;不能關聯至獨立分區, OS啟動即會用到的程序 /lib:啟動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules) /lib64:專用于x86_64系統上的輔助共享庫文件存放位置 /etc:配置文件目錄 /home/USERNAME:普通用戶家目錄 /root:管理員的家目錄 /media:便攜式移動設備掛載點 /mnt:臨時文件系統掛載點 /dev:設備文件及特殊文件存儲位置 b: block device,塊設備,隨機訪問 c: character device,字符設備,線性訪問 /opt:第三方應用程序的安裝位置 /srv:系統上運行的服務用到的數據 /tmp:臨時文件存儲位置 /usr: universal shared, read-only data /bin/主要放置一些應用軟件工具的必備執行檔例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free等。 /sbin:放置一些網路管理的必備程序例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba等 /lib: 32位使用 /lib64:只存在64位系統 /include: C程序的頭文件(header files) /share:結構化獨立的數據,例如doc, man等 /local:第三方應用程序的安裝位置 /var: variable data files /cache: 應用程序緩存數據目錄 /lib: 應用程序狀態信息數據 /local:專用于為/usr/local下的應用程序存儲可變數據; /lock: 鎖文件 /log: 日志目錄及文件 /opt: 專用于為/opt下的應用程序存儲可變數據; /run: 運行中的進程相關數據;通常用于存儲進程pid文件 /spool: 應用程序數據池 /tmp: 保存系統兩次重啟之間產生的臨時數據 /proc: 用于輸出內核與進程信息相關的虛擬文件系統 /sys:用于輸出當前系統上硬件設備相關信息虛擬文件系統 /selinux: security enhanced Linux, selinux相關的安全策略等信息的存儲位置 centos7目錄變化: /bin轉移到/usr/bin;/sbin轉移到/usr/sbin;/lib轉移到/usr/lib;/lib64轉移到/usr/lib64. 綜述:如果這是用戶和管理員必備的二進制文件,就會放在/bin。如果這是系統管理員必備,但是一般用戶根本不會用到的二進 制文件,就會放在 /sbin。相對而言。如果不是用戶必備的二進制文件,多半會放在/usr/bin;如果不是系統管理員必備的工 具,多半會放在/usr/sbin。
2.linux上命令組成
二進制程序: /bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin 庫文件: /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
3.文件類型
-:普通文件 d: 目錄文件 b: 塊設備 c: 字符設備 l: 符號鏈接文件 p: 管道文件pipe s: 套接字文件socket
4.絕對路徑和相對路徑
絕對路徑: 以正斜杠(/)開始 完整的文件的位置路徑 從根下開始定義路徑 相對路徑: 不以斜線開始 指定相對于當前工作目錄或某目錄的位置 .表示當前目錄 ..表示上級目錄 改變目錄: 到上一級目錄:cd .. 為了你的主目錄:cd 到以前的工作目錄:cd - 環境變量: PWD:保存了當前目錄路徑 OLDPWD:上一次所在目錄路徑
5.文件名通配
* 匹配零個或多個字符? ? 匹配任何單個字符? ~ 當前用戶家目錄? ~username 用戶家目錄? ~+ 當前工作目錄? ~- 前一個工作目錄? [0-9] 匹配一個數字范圍? [a-z]:大寫和小寫字母? [A-Z]:大寫字母 [wxc]:匹配列表中的任何的一個字符 [^wxc]:匹配列表中的所有字符以外的字符 [:digit:]:任意數字,相當于0-9 [:lower:]:任意小寫字母 [:upper:]: 任意大寫字母 [:alpha:]: 任意大小寫字母 [:alnum:]:任意數字或字母 [:space:]:空格 [:punct:]:標點符號
原創文章,作者:M20-1--孔祥文,如若轉載,請注明出處:http://www.www58058.com/26621