(一)linux基礎(2)
-
1、Linux上的文件管理類命令
Linux上的文件管理類命令有:cp,mv,rm.
(1)、cp命令: copy
源文件:目標文件;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命令類似
? mv命令:move mv - move (rename) files
命令格式: mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... 源文件和目標文件再同一個目錄下,即重命名 常用選項: -i:交互式 -f:force
(3)、rm命令: remove
命令格式:rm [OPTION]... FILE...
常用選項:
? -i: interactive 交互式
? -f: force 強制
? -r: recursive 遞歸
刪除目錄:rm -rf /PATH/TO/DIR
危險操作: rm -rf /*
註意:在生產環境中,所有不用的文件建議不要直接刪除,而是移動至某個人專用目錄;(模擬回收站)
-
2、bash的基礎特性:命令行展開
~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
{}:可承載一個以逗號分隔的路徑列表,並能夠將其展開為多個路徑;
實戰:
使用命令行展開功能
1、創建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,
2、在/tmp目錄下創建目錄:x_y, x_z, q_y, q_z
[[email protected] tmp]# mkdir -pv /tmp/{a1/{a,b},a2} mkdir: 已創建目錄 "/tmp/a1" mkdir: 已創建目錄 "/tmp/a1/a" mkdir: 已創建目錄 "/tmp/a1/b" mkdir: 已創建目錄 "/tmp/a2"
[[email protected] trash]# mkdir -v /tmp/{x,q}_{y,z} mkdir: 已創建目錄 "/tmp/x_y" mkdir: 已創建目錄 "/tmp/x_z" mkdir: 已創建目錄 "/tmp/q_y" mkdir: 已創建目錄 "/tmp/q_z"
-
3、什麽是文件的元數據
對Linux文件系統來講,每個文件都由兩類數據組成:
? 元數據:metadata
? 數據:data
數據是是文件的內容,而元數據是文件的屬性信息,我們可以用stat命令來查看文件的元數據
(1)、stat命令:
stat - display file or file system status命令格式: stat FILE...
[[email protected] ~]# 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是無法指定修改的,他隨元數據發生改變而隨之改變
-
4、命令引用
bash的基礎特性: 引用
強引用: ‘‘ ---其內部的任何字串直接顯示
弱引用: "" ---變量中所存儲的值作變量替換顯示出來
命令引用: ``或$()舉例:在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
[[email protected] ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S) [[email protected] ~]# ls /tmp | grep tfile tfile-2019-04-06-16-54-51
-
5、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
[[email protected] ~]# mkdir /tmp/mytest1 [[email protected] ~]# cp -r /etc/p*[^0-9] /tmp/mytest1 [[email protected] ~]# 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/
-
6、用戶和組管理類命令的使用方法
練習:創建用戶tom,指定UID為5001,指定家目錄為/tmp/tom, 指定shell為/bin/zsh, 指定基本組為tom,附加組為jack
[[email protected] ~]# groupadd jack [[email protected] ~]# groupadd tom [[email protected] ~]# useradd -u 5001 -d /tmp/tom -s /bin/zsh -g tom -G jack tom
(一)linux基礎(2)