簡述
在Linux操作系統使用過程中,因為運維需要頻繁的對文件、目錄進行操作,所以需要學習一些關于文件、目錄的命令
Linux上文件是什么?
「文件」:存儲空間存儲的一段流式數據,可以按名「存取」這些數據
常見文件類型
-:常規文件
d:目錄文件
b:塊設備文件,以「block」為單位進行隨機訪問,常見設備「硬盤」
c:字符設備文件,以「character」為單位進行線性訪問,常見設備「鍵盤」
l:符號鏈接文件
p:命令管道
s:套接字文件
通過使用命令ls來查看文件類型
[root@localhost ~]# ls -l /etc/ drwxr-xr-x. 3 root root 97 Apr 12 2016 abrt -rw-r--r--. 1 root root 44 Apr 12 2016 adjtime lrwxrwxrwx. 1 root root 11 Apr 12 2016 init.d -> rc.d/init.d .....
Linux上目錄是什么?
「目錄」也是文件,在目錄中存放著路徑映射表,在Linux操作系統中存在一個特殊目錄“/”(根目錄),通過「根目錄」可以找到目錄,文件可以通過目錄找到
假如需要查找/etc/fstab文件,具體過程如下:
-
通過根目錄自引用的iNode,找到根目錄對應的block
-
在根目錄block中存放著路徑映射表,表中存放著etc目錄的iNode號
-
通過etc的iNode來訪問etc對應的block
-
根據etc的block可以找到fstab的iNode號
-
通過fstab的INode就找到了對應的block了
常用命令簡介
-
ls命令
功用:列出指定目錄下的內容
語法:ls [OPTION]… [FILE]…
不帶任何選項參數,表示顯示不帶任何信息的文件
[root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Music Public testDesktop Downloads ip.text Pictures Templates Videos
-l (l是字母不是“1”)顯示是文件還是目錄,它的大小、修改日期和時間、文件或目錄的名字以及文件的屬主屬組等信息
[root@localhost ~]# ls -l total 12 -rw-------. 1 root root 1374 Apr 12 2016 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Apr 11 2016 Desktop drwxr-xr-x. 2 root root 6 Apr 11 2016 Documents drwxr-xr-x. 2 root root 6 Apr 11 2016 Downloads
-a 顯示隱藏文件,.開頭文件為隱藏文件
[root@localhost ~]# ls -a . .bashrc Documents .gstreamer-0.10 .local Templates.. .cache Downloads .gtkrc-2.0-kde4 .mozilla test
-A 顯示除.和..之外的所有文件
[root@localhost ~]# ls -A anaconda-ks.cfg .config .esd_auth initial-setup-ks.cfg Music .thumbnails.bash_history .cshrc .functions.swo ip.text Pictures Videos
-h 顯示易讀方式的文件大小,通常結合-l選項使用
[root@localhost ~]# ls -lhtotal 12K -rw-------. 1 root root 1.4K Apr 12 2016 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Apr 11 2016 Desktop drwxr-xr-x. 2 root root 6 Apr 11 2016 Documents drwxr-xr-x. 2 root root 6 Apr 11 2016 Downloads
-d 查看目錄本身
[root@localhost ~]# ls -ld /var/log/ drwxr-xr-x. 18 root root 4096 Nov 5 14:45 /var/log/
-r 逆序顯示,-R 遞歸顯示
-
cd命令
功用:切換工作目錄
語法:cd [PATH]
~ 切換回自己家目錄
~USERNAME 切換至指定用戶家目錄
-上一次目錄位置與當前目錄來回切換
[root@localhost tmp]# cd ~natasha ###切換至natasha家目錄 [root@localhost natasha]#
-
cat命令
功用:文本文件查看工具
語法:cat [OPTION]… [FILE]…
-n 顯示行號
-E 顯示行結束符$
[root@localhost ~]# cat -n /etc/issue 1 \S 2 Kernel \r on an \m 3 4 Welcome To Hakatsuki
-
file命令
功用:查看文件內容類型
語法:file [FILE]…
[root@localhost ~]# file /etc/fstab /etc/fstab: ASCII text
-
mkdir命令
功用:創建目錄
語法:mkdir [OPTION]… DIRECTORY…
-p 按需創建父目錄
-v 顯示詳細過程
-m 指定目錄權限
[root@localhost ~]# mkdir -pv /tmp/a/b/c ###創建a、b、c目錄,并顯示過程 mkdir: created directory ‘/tmp/a’ mkdir: created directory ‘/tmp/a/b’ mkdir: created directory ‘/tmp/a/b/c’
-
rmdir命令
功用:刪除目錄
語法:rmdir [OPTION]… DIRECTORY…
-p 如果父目錄為空,一并刪除,謹慎使用
-v 顯示過程
[root@localhost ~]# rmdir -pv /tmp/a/b/c/ ###刪除c目錄,a,b為空目錄也會被刪除 rmdir: removing directory, ‘/tmp/a/b/c/’ rmdir: removing directory, ‘/tmp/a/b’ rmdir: removing directory, ‘/tmp/a’ rmdir: removing directory, ‘/tmp’ rmdir: failed to remove directory ‘/tmp’: Device or resource busy
-
head命令
功用:查看文件前N行
語法:head [OPTION]… [FILE]…
-n # #是數字,顯示前#行
-#
[root@localhost ~]# head -n 3 /etc/passwd ###~]# head -3 /etc/passwd 效果一致 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
-
tail命令
功用:顯示文件后N行
語法:tail [OPTION]… [FILE]…
-n # #是數字,顯示后#行
-#
-f 監控,新增信息會直接顯示
[root@localhost ~]# tail -3 /etc/passwd rootkit:x:1003:1003::/home/rootkit:/bin/bash user4:x:1004:1004::/home/user4:/bin/chroot chrooter:x:1005:1005::/home/chrooter:/bin/bash
-
stat命令
功用:查看文件詳細屬性信息(元數據)
語法:stat FILE…
[root@localhost ~]# stat /etc/fstab File: ‘/etc/fstab’ Size: 465 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 33554562 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-11-06 15:01:33.484018459 +0800 ###最后訪問時間 Modify: 2016-04-12 07:11:24.423003139 +0800 ###最后更改時間(數據) Change: 2016-04-12 07:27:13.470061088 +0800 ###最后改變時間(元數據) Birth: -
-
touch命令
功用:修改文件時間戳或者創建不存在的文件
語法:touch [OPTION]… FILE…
-c 如果文件不存在,則不進行創建
-a 僅修改access時間
-m 僅修改modify時間
[root@localhost ~]# touch /tmp/a.text ###創建一個不存在的文件a.text [root@localhost ~]# ls /tmp/a.text
-
cp命令
功用:復制
語法:
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
-i 交互式復制,覆蓋之前提醒用戶確認
-f 強制覆蓋目標文件
-r -R 遞歸復制目錄
-a 用于歸檔復制
-
單源復制 cp [OPTION]… [-T] SOURCE DEST
如果目標不存在,則事先創建此文件,并復制文件的數據流至目標中
如果目標存在:
是非目錄文件,覆蓋目標文件
是目錄文件,則在目標目錄下創建一個同名的文件,并復制其數據流
[root@localhost ~]# mkdir /tmp/test ###創建測試目錄 [root@localhost ~]# cp /etc/issue /tmp/test/ ###目標是目錄文件,則在目錄下創建issue文件,并復制其數據流 [root@localhost ~]# ls /tmp/test/ issue
-
多源復制
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果目標不存在,錯誤
如果目標存在:
是非目錄文件,錯誤
是目錄文件,分別復制每個文件至目標目錄中,并保持原名
[root@localhost ~]# mkdir /tmp/test2 ###創建測試目錄 [root@localhost ~]# cp /etc/fstab /etc/issue /tmp/test2/ ###復制多個文件至test2 [root@localhost ~]# ls /tmp/test2/ fstab issue
-
mv命令
功用:移動文件或重命名文件
[root@localhost tmp]# mv /tmp/test2/issue ./ ###移動issue文件至當前目錄 [root@localhost tmp]# mv issue issue2 ###重命名issue文件為issue2
-
rm命令
功用:刪除文件或目錄
語法:rm [OPTION]… FILE…
-i 刪除之前提醒用戶確認
-f 強制刪除
-r 遞歸刪除
[root@localhost ~]# rm -rf /tmp/* ###強制刪除/tmp目錄下所有文件
Note:rm -rf 危險操作,慎用
原創文章,作者:N24-Akatsuki,如若轉載,請注明出處:http://www.www58058.com/57722
贊,總結了對文件和目錄經常操作的用法~繼續加油~