linux day 4node
文件管理linux
文件系統git
文件有兩類數據shell
元數據:metadata (裝備屬性)文件大小 文件名 如人的身高安全
數據:databash
linux 文件名 socket
藍色》目錄ide
綠色》可執行文件url
紅色》壓縮文件spa
淺藍色》連接文件
灰色》其餘文件
文件系統結構回憶
/
/boot:引導文件存放目錄,內核文件,引導加載器
/bin:供全部用戶使用的基本命令
/sbin:管理類基本命令
/lib:啓動時程序以來的基本共享文件及內核模塊文件
/lib64:專用於x86_64系統上的輔助共享庫文件存放位置
/etc:配置文件目錄
/home:普通用戶家目錄
/root:管理員家目錄
/media:便攜式移動設備掛載點
/mnt:臨時文件系統掛載點
/dev:設備文件及特殊文件存儲位置
/opt:第三方應用城區的安裝位置
/srv:系統上運行的服務用到數據
/tmp:臨時文件存儲位置
/usr:操做系統軟件資源存放位置
/var:常常變化的文件的存放位置
/proc:用於輸出內核與進程信息相關的虛擬文件系統
/sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統
/selinux:selinux相關的安全策略嘻嘻的存儲位置
linux 下的文件類型
-:普通文件
d:目錄文件
b:塊設備
c:字符設備
l:符號連接文件
p:管道文件pipe
s:套接字文件socket
cd 命令
到上一級目錄
cd ..
回到你的主目錄
cd
到以前的工做目錄
cd -
pwd:查看當前目錄路徑
OLDPWD:上次所在的目錄路徑
pwd -p 顯示 物理路徑
ls 命令
ls -a 包含隱藏文件
ls -l 顯示額外的信息
ls -R 目錄遞歸經過
ls -ld 目錄和符號連接信息
ls -1 文件分行顯示
ls -S 按從大到小排序
ls -u 配合-t選項,顯示並按atime新新到舊排序
ls- U 不排序按目錄存放順序顯示
文件通配符
* 匹配零個或多個字符
? 匹配任何單個字符
~ 當前用戶家目錄
~username 用戶家目錄
~+ 當前工做目錄
~- 前一個工做目錄
[0-9] 匹配一個數字範圍
[a-z][A-Z]
[xhb] 匹配列表中的任何一個字符
[^xhb] 匹配列表中的全部字符之外的字符
[] 內包含的其餘通配符
[:digit:] : 任意數字 至關於 [0-9]
[:lower:] : 任意小寫字母
[:upper:] : 任意大寫字母
[:alpha:] : 任意大小寫字母
[:alnum:] : 任意數字或字母
[:space:] : 空格
[:punct:] : 標點符號
練習
1.顯示/var目錄下全部以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄
[root@CentOS7 ~]# ls -d /var/l*[[:digit:]]*[[:lower:]]
/var/l33a
2.顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的文件或目錄
ls -d /etc/[[:gidit:]][^[:gidit:]]
3.顯示/etc目錄下以非字母開頭,後面跟了一個字母及其餘任意長度任意字符的文件或目錄
ls -d /etc/[^[:alpha:]][[:alpha:]]*
4.顯示/etc目錄下全部以m開頭以非數字結尾的文件或目錄
ls /etc/m*[^[:gidit:]]
5.顯示/etc目錄下,全部以.d結尾的文件或目錄
ls -d /etc/*.d
6.顯示/etc目錄下,全部.conf結尾,且以m,n,r,p開頭的文件或目錄
ls -d /etc/[mnrf]*.conf
查看文件狀態
stat
如
[root@CentOS7 ~]# stat /root
File: ‘/root’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 802h/2050dInode: 201326721 Links: 16
Access: (0550/dr-xr-x---) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-07-27 20:30:45.639436485 +0800
Modify: 2016-07-27 20:30:44.101129780 +0800
Change: 2016-07-27 20:30:44.101129780 +0800
Birth: -
三個時間戳
access time : 訪問時間,atime,讀取文件內容時間
modify time : 修改時間,mtime,改變文件內容時間(數據)
change time : 改變時間,ctime,元數據發生改變時間(metadata)
元數據:metadata (裝備屬性)文件大小 文件名 如人的身高
數據:data
建立空文件和刷新時間
touch 命令
touch [OPTION] FILE
-a 僅改變 atime
-m 僅改變 mtime
-t 200808080808.08 改變amtime 時間戳
-c 若是文件不存在,則不建立
複製 cp 命令
一個文件複製 若是 目標文件存在 則 覆蓋目標
若是 不存在 則 新建填充
若是 目標爲目錄 則 在其下新建與源文件同名的文件並填充
多個文件複製 若是 目標文件不存在 則 報錯
若是 目標存在且是文件 則 報錯
若是 目標存在且是目錄 則 在目標下創建與源文件相同名字的文件並內容複製進新文件
複製目錄 若是 目標不存在 則 創建目標並把源文件下文件複製到目標
若是 目標存在且是文件 則 報錯
若是 目標存在且是目錄 則 在目標下創建與源文件同名的目錄並複製目錄內內容
cp 經常使用選項
-i 交互式 (詢問yes or no)
-r -R 遞歸複製目錄及內部的全部內容
-a 歸檔(複製文件的元數據等不更改)
-d 不復制源文件,只複製連接名 此處若是單純複製連接文件,會複製連接文件指向的源文件,如只想複製連接文件就要加 -d 選項
-p 保持源文件的屬性信息
-f 強制覆蓋
-v 顯示過程
練習
1,使用別名命令,每日將/etc目錄下全部文件,備份到/testdir/下獨立日的新目錄下,並要求新目錄格式爲backupYYYY-mm-dd,備份過程可見
alias cpetc='cp -vrp /etc/ /testdir/date`date+%F`
alias cpetc='cp -vrp /etc/ /testdir/date&(date+%F)
2,先建立/testdir/rootdir目錄,在複製/root全部下文件到該目錄內,並要求保留原有權限
cp -rp /root/ /testdir/rootdir
命令別名 alias
alias NAME='VALUE'
在命令行中定義的別名,僅當前shell進程有效
若是想永久有效,要定義在配置文件中
僅對當前用戶;~/.bashrc
對全部用戶有效: /etc/bashrc
編輯配置給出的心配置不會當即生效!!!
需 bash 進程從新讀取配置文件:
source /path/to/config_file
或
. /path/to/config_file
撤銷別名
unalias
unalias name
若是別名同原命令同名,若是要執行原命令,可以使用
\COMMAND
'COMMAND'
/PATH/COMMAND
移動和重命名文件
mv
-i 交互式(詢問)
-f 強制
刪除
rm
-i
-f
-r 遞歸(目錄)
--no-preserve-root 刪除 / 須要的參數
目錄操做
tree 顯示目錄樹
-d 只顯示目錄
-L 指定顯示目錄層級數目
如[root@CentOS7 ~]# tree -L 1 /root
/root
├── Desktop
├── Documents
├── Downloads
├── Music
├── myfirst.sh
├── Pictures
├── Public
├── Templates
├── Videos
└── xx.x
-P ????只顯示由指定pattern匹配到的路徑
mkdir 建立目錄
-p 建立目錄樹
-v 顯示建立詳情過程信息
-m 指定權限
rmdir 刪除空目錄
-p 遞歸刪除父 空目錄
-v 顯示過程
rm -r 遞歸刪除目錄樹
練習
1,如何建立/testdir/dir1/x,/testdir/dir1/y,/testdir/dir1/x/a,/testdir/dir1/x/b,/testdir/dir1/y/a,/testdir/dir1/y/b
mkdir -p /dir1/{x,y}/{a,b}
[root@CentOS7 ~]# tree dir1/
dir1/
├── x
│ ├── a
│ └── b
└── y
├── a
└── b
2, 如何建立/testdir/dir2/x,/testdir/dir2/y,/testdir/dir2/x/a,/testdir/dir2/x/b
mkdir -p /testdir/dir2/{x/{a,b},y}
mkdir -p /testdir/dir2/{x,y/{a,b}}
[root@CentOS7 ~]# tree dir2
dir2
├── x
└── y
├── a
└── b
3, 如何建立/testdir/dir3,/testdir/dir4,/testdir/dir5,/testdir/dir5/dir3,/testdir/dir5/dir4
mkdir -p /testdir/dir{3,4,5/dir{3,4}}
[root@CentOS7 ~]# tree ttt
ttt
├── dir3
├── dir4
└── dir5
├── dir3
└── dir4