linux 基礎學習入門 4

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 命令



一個文件複製 若是 目標文件存在 則 覆蓋目標

若是 不存在 則 新建填充

若是 目標爲目錄 則 在其下新建與源文件同名的文件並填充


多個文件複製 若是 目標文件不存在 則 報錯

若是 目標存在且是文件 則 報錯

若是 目標存在且是目錄 則 在目標下創建與源文件相同名字的文件並內容複製進新文件


複製目錄    若是 目標不存在 則 創建目標並把源文件下文件複製到目標

 若是 目標存在且是文件 則 報錯

 若是 目標存在且是目錄 則 在目標下創建與源文件同名的目錄並複製目錄內內容

spacer.gif

wKioL1eZyCjyduHwAAGGGmq__Ho689.png-wh_50

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

相關文章
相關標籤/搜索