第二週做業

一、描述Linux發行版的系統目錄名稱命名規則以及用途。

文件系統分層結構:LSB Linux Standard Base
文件和目錄被組織成一個單根倒置樹結構
文件系統從根目錄下開始,用「/」表示
文件名稱區分大小寫
路徑分隔的 /
目錄名或文件名的長度不能超過 255 個字符
包括路徑在內文件名稱最長4095個字節
藍色-->目錄 綠色-->可執行文件 紅色-->壓縮文件 淺藍色-->連接文 件 灰色-->其餘文件
除了斜槓和NUL,全部字符都有效.但使用特殊字符的目錄名和文件不推薦使用, 有些字符須要用引號來引用它們 node

用途 git

/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:臨時文件存儲位置
/proc: 用於輸出內核與進程信息相關的虛擬文件系統
/sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統
/usr: universal shared, read-only data
bin: 保證系統擁有完整功能而提供的應用程序 sbin: lib:32位使用
lib64:只存在64位系統
include: C程序的頭文件(header files)
share:結構化獨立的數據,例如doc, man等
local:第三方應用程序的安裝位置
bin, sbin, lib, lib64, etc, share
/var: variable data files
cache: 應用程序緩存數據目錄 lib: 應用程序狀態信息數據
local:專用於爲/usr/local下的應用程序存儲可變數據
lock: 鎖文件
log: 日誌目錄及文件
opt: 專用於爲/opt下的應用程序存儲可變數據
run: 運行中的進程相關數據,一般用於存儲進程pid文件
spool: 應用程序數據池
tmp: 保存系統兩次重啓之間產生的臨時數據 express

二、描述文件的元數據信息有哪些,分別表示什麼含義,如何查看?如何修改文件的時間戳信息?

(1)stat filename 查看文件狀態

第二週做業

 元數據包括:文件類型,權限,UID,GID , 連接數(指向這個文件名路徑名稱個數), 該文件的大小和不一樣的時間戳 , 指向磁盤上文件的數據塊指針 , 有關文件的其餘數據 vim

(2)使用touch命令刷新時間戳,時間戳有3種,Access:訪問時間   Modify:修改時間  Change:改變時間 centos

touch -a                改變access time 和change time
touch -m              改變modification  time
touch -t       指定access time 和modification time,格式爲 [YYMMDDhhmm]
touch -d  後面能夠接日期,也可使用 --date="日期或時間"

第二週做業第二週做業第二週做業第二週做業

三、總結軟鏈接和硬鏈接區別,並用實例操做說明。

區別:api

第二週做業

四、Linux上的文件管理類命令都有哪些,其經常使用的使用方法及其相關示例演示。

ls 列出文件或者目錄緩存

用法:ls [options] [ files_or_dirs ] bash

ls -a 包含隱藏文件 
    ls -l 顯示額外的信息 
    ls -C 多列顯示文件
    ls -R  目錄遞歸 
    ls -ld  目錄和符號連接信息 
    ls -1  文件分行顯示 ,單列顯示
    ls -m  以,分隔文件和文件夾
    ls –S  按從大到小排序 
    ls -t   按mtime排序 
    ls -u   配合-t選項,顯示並按atime重新到舊排序 
    ls -U  按目錄存放順序顯
    ls -X  按文件後綴排序 
    ls - F 在輸出項後追加文件的類型標識符

示例:
[root@centos7 data]#ls -a /data/ 查看/data下的文件,包括隱藏文件
. .. access_log add a.txt .bash_history .bash_logout .bash_profile .bashrc
[root@centos7 data]#ls -l /data/ 長格式顯示/data下內容
total 8896
-rw-r--r-- 1 root root 9080283 Nov 26 21:43 access_log
-rw-r--r-- 1 root root 117 Dec 2 01:34 add
-rw-r--r-- 1 root root 6 Dec 2 22:32 a.txt
[root@centos7 data]#ls -lh /data/ 人易讀方式查看文件
total 8.7M
-rw-r--r-- 1 root root 8.7M Nov 26 21:43 access_log
-rw-r--r-- 1 root root 117 Dec 2 01:34 add
-rw-r--r-- 1 root root 6 Dec 2 22:32 a.txt
[root@centos7 data]#ls -i /data/ 查看/data下文件的inode號
73 access_log 75 a.txt 113 git 72 lsl 79 profile
[root@centos7 data]#ls -R /data 遞歸查看/data下的文件及文件夾
/data:
access_log add a.txt b.txt git goole.txt lsl profil profile project scripts43 varnish wang yinglianjie
/data/git:
/data/scripts43:
arg.sh backup.sh diskcheck.sh hello.sh rm2.sh rm.sh scp10.sh systeminfo.sh useradd.sh user.sh
[root@centos7 data]#ls -1F /data/ 顯示不一樣文件的類型且添加對應標識架構

b.txt
scripts43/ide

ls -l --time=atime  /data   查看讀時間
ls -l --time=ctime  /data   查看文件狀態時間
ls -l --time=mtime  /date  查看文件的修改時間

stat 查看文件狀態

stat /data/pro

`[root@centos7 data]#stat /data/pro`
  File: ‘/data/pro’
  Size: 1825            Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d      Inode: 87          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-12-05 01:36:07.488832542 +0800
Modify: 2019-12-05 01:36:07.488832542 +0800
Change: 2019-12-05 01:38:15.188840247 +0800
 Birth: -


file 查看文件狀態

touch 建立文件,默認狀況下touch會建立文件大小爲0的空文件,若是文件存在,則將更改文件的ctime、atime、mtime
格式:touch [OPTION]... FILE...
經常使用選項:

-a  僅改變 atime和ctime  
-m  僅改變 mtime和ctime   
-t  [[CC]YY]MMDDhhmm[.ss]     指定atime和mtime的時間戳   
-c  若是文件不存在,則不予建立

cp複製文件和目錄

cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE…
cp SRC DEST
若是目標不存在:新建DEST,並將SRC中內容填充至DEST中;
若是目標存在:若是DEST是文件:將SRC中的內容覆蓋至DEST中;
若是DEST是目錄:在DEST下新建與原文件同名的文件,並將SRC中內容 填充至新文件中.

p經常使用選項:

-i  覆蓋前提示   
    -n     不覆蓋,注意二者順序 
     -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  強制覆蓋,不做覆蓋提醒;
    -u --update 只複製源比目標更新文件或目標不存在的文件 
    -b 目標存在,覆蓋前先備份,形式爲 filename~ 
    --backup=numbered 目標存在,覆蓋前先備份加數字後綴 
    -S 執行備份文件的後綴,默認爲~

示例:
[root@centos7 data]#cp /data/dir2 /tmp/bak 不能直接進行目錄複製
cp: omitting directory ‘/data/dir2’
[root@centos7 data]#cp -r /data/dir2 /tmp/bak 複製目錄須要加-r
[root@centos7 data]#cp -i /data/dir2/filee /tmp/bak/dir2/ 目標文件存在,覆蓋前提示
cp: overwrite ‘/tmp/bak/dir2/filee’? y
[root@centos7 data]#cp -bi /data/dir2/filef /tmp/bak/dir2/ 覆蓋前將文件進行備份
cp: overwrite ‘/tmp/bak/dir2/filef’? y
[root@centos7 data]#ll /tmp/bak/dir2/filef
-rw-r--r-- 1 root root 0 Dec 5 10:53 /tmp/bak/dir2/filef
-rw-r--r-- 1 root root 0 Dec 5 10:52 /tmp/bak/dir2/filef~
[root@centos7 data]#cp -a /data/dir1 /tmp/ 歸檔目錄dir1,文件屬性不變
[root@centos7 data]#ll /data/dir1 /tmp/dir1
/data/dir1:
total 0
-rw-r--r-- 1 root root 0 Dec 5 10:43 filea
-rw-r--r-- 1 root root 0 Dec 5 10:43 fileb
-rw-r--r-- 1 root root 0 Dec 5 10:51 filec
-rw-r--r-- 1 root root 0 Dec 5 10:51 filed
/tmp/dir1:
total 0
-rw-r--r-- 1 root root 0 Dec 5 10:43 filea
-rw-r--r-- 1 root root 0 Dec 5 10:43 fileb
-rw-r--r-- 1 root root 0 Dec 5 10:51 filec
-rw-r--r-- 1 root root 0 Dec 5 10:51 filed
[root@centos7 ~]#cp -S .bak /data/dir1/filea /tmp/dir1/ 指定備份文件的後綴爲.bak
cp: overwrite ‘/tmp/dir1/filea’? Y
[root@centos7 ~]#ll /tmp/dir1/filea

-rw-r--r-- 1 root root 0 Dec 5 11:02 /tmp/dir1/filea
-rw-r--r-- 1 root root 0 Dec 5 10:43 /tmp/dir1/filea.bak

mv 移動文件或目錄

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

經常使用選項:

-i --interactive 交互式,覆蓋前先詢問用戶確認 
-f --force 強制覆蓋重複文件或目錄
-b 目標存在,覆蓋前先備份 
-u --update當源文件比目標文件新或者目標文件不存在時才執行
-v, --verbose   列出操做過程

示例:
使用mv對文件重命名:
[root@centos7 data]#mv /data/f2 /data/f2.bak
[root@centos7 data]#ll /data/f2.bak
-rw-r--r-- 1 root root 9 Dec 2 10:55 /data/f2.bak
移動文件
[root@centos7 data]#mv /data/f3 /tmp/bak
[root@centos7 data]#ll /tmp/bak/f3
-rw-r--r-- 1 root root 9 Dec 2 10:55 /tmp/bak/f3

rename 批量重命名

用法:rename [options] expression replacement file...

示例
[root@centos7 data]#rename -v .txt .exe *.txt
a.txt -> a.exe
b.txt -> b.exe
goole.txt ->goole.exe

rm 刪除文件或者目錄

用法:rm [OPTION]... FILE...

經常使用選項:

-i 交互式  
-f 強制刪除  
-r, -R 遞歸
-d 刪除空目錄文件,非空目錄不能刪除
-v 顯示詳細過程           
--no-preserve-root  刪除/ 
--preserve-root  不遞歸刪除/

示例:
[root@centos7 data]#rm -i dir1 默認不能刪除目錄
rm: cannot remove ‘dir1’: Is a directory
[root@centos7 data]#rm -ir dir1 刪除前確認
rm: remove directory ‘dir1’? y
[root@centos7 data]#rm -vr dir2 遞歸刪除文件夾,並顯示被刪除的內容
rm: remove directory ‘dir2’? y
removed directory: ‘dir2’
[root@centos7 data]#rm -rf dir3 強制遞歸刪除目錄dir3
[root@centos7 data]#touch /data/dir4/dir4.txt
[root@centos7 data]#rm -d /data/dir4 -d不能刪除不爲空的目錄
rm: cannot remove ‘/data/dir4’: Directory not empty
[root@centos7 data]#rm -rf /data/dir
[root@centos7 data]#ls -d dir*
dir5
[root@centos7 data]#rm -- -wang 刪除以-開通的文件
rm: remove regular empty file ‘-wang’? y
[root@centos7 data]#ll ./-wang
ls: cannot access ./-wang: No such file or directory

五、複製/etc/profile至/tmp/目錄,用查找替換命令刪除/tmp/profile文件中的 行首的空白字符

在擴展命令模式中輸入:%s/^[[:space:]]\+//
 
第二週做業

六、在vim中設置tab縮進爲4個字符

set tabstop=4
一、在vim ~/.vimrc 中設置,對該用戶的全部vim編輯生效
二、在某個vim編輯的擴展命令模式中輸入:set tabstop=4,對單個vim臨時生效;

架構班做業看這裏:

一、編譯安裝tengine,配置虛擬主機,實現api.x.com代理9001端口。(x.com爲本身定義的域名)

 

二、配置haproxy,實現7層代理,/a 路徑代理轉發到a集羣, /b 路徑代理轉發到b集羣!

相關文章
相關標籤/搜索