一、Linux上的文件管理類命令node
Linux上的文件管理類命令有:cp,mv,rm.python
(1)、cp命令: copy
源文件:目標文件;shell
cp - copy files and directories 單源複製: cp [OPTION]... [-T] SOURCE DEST 多源複製: cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... A、單源複製: cp [OPTION]... [-T] SOURCE DEST 若是DEST不存在,則事先建立此文件,並複製源文件的數據流至DEST中; 若是DEST存在: 若是DEST是非目錄文件;則覆蓋目標文件; 若是DEST是目錄文件:則如今DEST目錄下建立一個與源文件同名的文件,並複製其數據流; B、多源複製 cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... 若是DEST不存在:錯誤; 若是DEST存在: 若是DEST是非目錄文件: 錯誤; 若是DEST是目錄文件: 分別複製每一個文件至目標目錄中,並保持原名; 經常使用選項 -i: 交互式複製,即覆蓋以前提醒用戶去人; -f: --force 強制覆蓋目標文件; -r,-R: 遞歸複製目錄; -d: 複製符號連接文件自己,而非其指向的源文件; -a:-dR --preserve=all,archive,用於實現歸檔; --preserv= mode:權限 ownership:屬主和屬組 timestamps:時間戳 context:安全標籤 xattr:擴展屬性 links: 符號連接 all: 上述全部屬性
(2)、mv命令安全
用法和cp命令相似bash
mv命令:move mv - move (rename) fileside
命令格式: mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... 源文件和目標文件再同一個目錄下,即重命名 經常使用選項: -i:交互式 -f:force
(3)、rm命令: removepost
命令格式:rm [OPTION]... FILE...命令行
經常使用選項:code
-i: interactive 交互式遞歸
-f: force 強制
-r: recursive 遞歸
刪除目錄:rm -rf /PATH/TO/DIR
危險操做: rm -rf /*
注意:在生產環境中,全部不用的文件建議不要直接刪除,而是移動至某我的專用目錄;(模擬回收站)
二、bash的基礎特性:命令行展開
~:自動展開爲用戶的家目錄,或指定的用戶的家目錄;
{}:可承載一個以逗號分隔的路徑列表,並可以將其展開爲多個路徑;
實戰:
使用命令行展開功能
一、建立/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,
二、在/tmp目錄下建立目錄:x_y, x_z, q_y, q_z
[root@bogon tmp]# mkdir -pv /tmp/{a1/{a,b},a2} mkdir: 已建立目錄 "/tmp/a1" mkdir: 已建立目錄 "/tmp/a1/a" mkdir: 已建立目錄 "/tmp/a1/b" mkdir: 已建立目錄 "/tmp/a2"
[root@bogon trash]# mkdir -v /tmp/{x,q}_{y,z} mkdir: 已建立目錄 "/tmp/x_y" mkdir: 已建立目錄 "/tmp/x_z" mkdir: 已建立目錄 "/tmp/q_y" mkdir: 已建立目錄 "/tmp/q_z"
三、什麼是文件的元數據
對Linux文件系統來說,每一個文件都由兩類數據組成:
元數據:metadata
數據:data
數據是是文件的內容,而元數據是文件的屬性信息,咱們能夠用stat命令來查看文件的元數據
(1)、stat命令:
stat - display file or file system status
命令格式: stat FILE...
[root@bogon ~]# stat /tmp/hi.txt File: ‘/tmp/hi.txt’ Size: 23 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 67309026 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2019-04-04 17:53:48.707013568 +0800 Modify: 2019-04-04 17:53:48.707013568 +0800 Change: 2019-04-04 17:53:48.707013568 +0800 Birth: -
元數據信息 | 解釋說明 |
---|---|
File | 文件名 |
size | 文件的大小 |
blocks | 佔用block的數量 |
io block | block總大小爲4096 |
regular file | 定義文件類型-常規文件 |
Device | 設備編號的十六進制和十進制 |
Inode | 文件的Inode值 |
Links | 文件的硬連接數 |
第一個Access | 文件的權限 |
Context | 註釋信息 |
Access | 訪問時間 |
Modify | 修改時間 |
Change | 改動時間 |
狀態信息有三個時間戳:
access time:訪問時間,atime即:經過cat,more等讀取其內容的最近一次時間
modifiy time: 修改時間,mtime即:改變文件內容的時間
change time: 改變時間,ctime:即元數據發生改變的時間
修改文件的時間戳信息使用touch命令
(2)、touch命令
touch - change file timestamps touch [OPTION]... FILE... (若是touch的文件不存在默認會建立一個空文件) -c: 指定的文件路徑不存在是不予建立 -a:僅修改access time -m:僅修改modify time -t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time
PS:change time是沒法指定修改的,他隨元數據發生改變而隨之改變
四、命令引用
bash的基礎特性: 引用
強引用: '' ---其內部的任何字串直接顯示
弱引用: "" ---變量中所存儲的值做變量替換顯示出來
命令引用: ``或$()
舉例:在/tmp目錄下建立以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@localhost ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S) [root@localhost ~]# ls /tmp | grep tfile tfile-2019-04-06-16-54-51
五、複製/etc目錄下全部以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
[root@localhost ~]# mkdir /tmp/mytest1 [root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1 [root@localhost ~]# ls -F /tmp/mytest1/ pam.d/ passwd passwd- pbm2ppa.conf pinforc pki/ plymouth/ pm/ pnm2ppa.conf popt.d/ postfix/ ppp/ prelink.conf.d/ printcap profile profile.d/ protocols pulse/ purple/ python/
六、用戶和組管理類命令的使用方法
練習:建立用戶tom,指定UID爲5001,指定家目錄爲/tmp/tom, 指定shell爲/bin/zsh, 指定基本組爲tom,附加組爲jack
[root@localhost ~]# groupadd jack [root@localhost ~]# groupadd tom [root@localhost ~]# useradd -u 5001 -d /tmp/tom -s /bin/zsh -g tom -G jack tom