文件管理
一、文件的復(fù)制(cp)
1.將當(dāng)前目錄下的file文件,復(fù)制到/tmp/目錄下,并改名為file_copy
? ? ? ? [root@oldboy ~]# cp file /tmp/file_copy
? ? ? ? cp: overwrite ‘/tmp/file_copy’? y
? ? ? ? [root@oldboy ~]# ls /tmp/file_copy
? ? ? ? /tmp/file_copy
2.將file1復(fù)制到/tmp目錄下
? ? ? ? [root@oldboy ~]# cp file1 /tmp/
? ? ? ? [root@oldboy ~]# cp file1 /tmp/file1? ? #此命令不常用
3.在拷貝的文件過(guò)程中
(1)如何保持文件原有的屬性不發(fā)生變化
? ? #未修改前
? ? -rw-r--r--. 1 root root ?0 Jul 29 10:07 file
? ? #第一次修改?
? ? -rwxrwxrwx. 1 root root ?0 Jul 29 10:03 file?
? ? #第二次修改?
? ? -rwxrwxrwx. 1 adm adm 0 Jul 29 10:03 file
(2)文件權(quán)限和身份都發(fā)生了變化
? ? ? ? ?[root@oldboy ~]# cp file /tmp/
? ? ? ? ?cp: overwrite ‘/tmp/file’? y
? ? ? ? ?[root@oldboy ~]# ll /tmp/file
? ? ? ? ?-rw-r--r--. 1 root root 0 Jul 29 15:24 /tmp/file
(3)在拷貝過(guò)程中加上-p參數(shù),保存文件的原有屬性
? ? ? ? ?[root@oldboy ~]# cp -p file /tmp/
? ? ? ? ?cp: overwrite ‘/tmp/file’? y
? ? ? ? ?[root@oldboy ~]# ll /tmp/file
? ? ? ? ?-rw-r--r--. 1 root root 0 Jul 29 10:03 /tmp/file
4.如何拷貝一個(gè)目錄,且目錄中有很多的子文件。(-r表示遞歸復(fù)制)
? ? ? ? ?[root@oldboy ~]# cp /etc/ /tmp/
? ? ? ? ?cp: omitting directory ‘/etc/’
? ? ? ? ?[root@oldboy ~]# cp /etc/ /tmp/ -r
? ? ? ? ?cp: overwrite ‘/tmp/etc/fstab’? y
? ? ? ? ?cp: overwrite ‘/tmp/etc/crypttab’? y
? ? ? ? ?cp: overwrite ‘/tmp/etc/mtab’? y
5.拷貝不同路徑下的不同文件至同一個(gè)目錄下(-v是顯示詳細(xì)過(guò)程)
? ? ? ? ?[root@oldboy ~]# cp file1 /etc/hostname /etc/hosts /opt/ -v
? ? ? ? ?‘file1’ -> ‘/opt/file1’
? ? ? ? ?‘/etc/hostname’ -> ‘/opt/hostname’
? ? ? ? ?‘/etc/hosts’ -> ‘/opt/hosts’
? ? ? ? ? [root@oldboy ~]#
6.拷貝不同路徑下不同文件+不同目錄至同一個(gè)位置
? ? ? ? ? [root@oldboy ~]# cp -rp file1 oldboy1/ file /etc/ /mnt/ /opt/?
? ? ? ? ? [root@oldboyedu ~]# ls /opt/?
? ? ? ? ? etc file file1 mnt oldboy1
7.在復(fù)制的過(guò)程中頻繁出現(xiàn)重復(fù)性操作,提示確認(rèn)操作
? ? ? ? ? [root@oldboy ~]# \cp -r /etc/ /opt/
? ? ? ? ? [root@oldboy ~]# /bin/cp -r /etc/ /opt/
? ? ? ? ? 加上\能夠取消重復(fù)性工作
? ? ? ? ? cp: overwrite ‘/opt/etc/fstab’? y
? ? ? ? ? cp: overwrite ‘/opt/etc/crypttab’? ……
8.擴(kuò)展
? ? ? ? ?[root@oldboy ~]# cp {file1,file5-bak} -v
? ? ? ? ?‘file1’ -> ‘file5-bak’
? ? ? ? ?‘file1’ -> ‘file5-bak’[root@oldboy ~]# cp /etc/sysconfig/network-? ? ? ? ?scripts/{ifcfg-ens32,ifcfg-ens-32-bak}
注:-r? 表示遞歸復(fù)制
? ? ? ?-v 顯示詳?
? ? ? ?-p 保留源文件或目錄的詳細(xì)過(guò)程
二、文件管理——查看文件內(nèi)容
1.cat查看文件內(nèi)容
? ? ? ? ?[root@oldboy ~]# cp /etc/passwd ./pass
? ? ? ? ?cp: overwrite ‘./pass’? y
? ? ? ? ?[root@oldboy ~]# cat pass? ? ? ?#查看文件的所有內(nèi)容,從頭至尾
? ? ? ? ?[root@oldboy ~]# cat -n pass? ?#查看文件有多少行時(shí)用-n
? ? ? ? ?[root@oldboy ~]# cat -A pass? ?#查看文件中存在的特殊字符,比如tab鍵
2.less和more
(1)less
? ? ? ? ?[root@oldboy ~]# less /etc/services? ? #查看/etc/services下的所有內(nèi)容,? ? 使用光標(biāo)上下翻動(dòng),空格鍵進(jìn)行翻頁(yè),q退出
(2)?more
? ? ? ? ?[root@oldboy ~]# more /etc/services? #查看/etc/services下的所有內(nèi)容,使用回車(chē)鄉(xiāng)下移動(dòng),空格鍵進(jìn)行翻頁(yè),q退出
3.head和tail
(1)head? ??
? ? ? ? ?[root@oldboy ~]# head pass? ? ? ?#查看文件頭部?jī)?nèi)容,默認(rèn)為前10行
? ? ? ? ?[root@oldboy ~]# head -n pass? ?#查看文件的前n行內(nèi)容。-n為指定查看那幾行的內(nèi)容。
(2)tail
? ? ? ? ? [root@oldboy ~]# tail pass? ? ? ? #查看文件尾部的內(nèi)容,默認(rèn)10行
? ? ? ? ? [root@oldboy ~]#tail -f /var/log/messages #查看尾部的變化
4.grep(過(guò)濾|匹配文件的內(nèi)容)
(1)過(guò)濾出pass文件中的root相關(guān)的行
? ? ? ? ? [root@oldboy ~]# grep "root" pass
? ? ? ? ? root:x:0:0:root:/root:/bin/bash
? ? ? ? ? operator:x:11:0:operator:/root:/sbin/nologin
(2)過(guò)濾pass文件中,匹配以root開(kāi)頭的行
? ? ? ? ? [root@oldboy ~]# grep "^root" pass
? ? ? ? ? root:x:0:0:root:/root:/bin/bash
(3)過(guò)濾pass文件中,匹配以bash結(jié)尾的行
? ? ? ? ? [root@oldboy ~]# grep "bash$" pass
? ? ? ? ? root:x:0:0:root:/root:/bin/bash
(4)顯示行號(hào)
? ? ? ? ? [root@oldboy ~]# grep -n "bash$" pass
? ? ? ? ? 1:root:x:0:0:root:/root:/bin/bash
(5)擴(kuò)展
匹配文件中/var/log/secure 文件中Failed字符串,并打印下2行
? ? ? ? ? [root@oldboy ~]#grep -n -A 2 "Failed" /var/log/secure
匹配文件中/var/log/secure文件中Falied字符串,并打印上2行
? ? ? ? ? [root@oldboy ~]#grep -n -B 2 "Failed" /var/log/secure
匹配文件中/var/log/secure文件中Failed字符串,并打印上下各2行
? ? ? ? ? [root@oldboy ~]#grep -n -C 2 "Failed" /var/log/secure
(6)過(guò)濾出文件包含ftp的行
? ? ? ? ? [root@oldboy ~]# grep "ftp" pass
? ? ? ? ? ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
(7)過(guò)濾除了ftp的行,其他的全部顯示

(8)忽略大小寫(xiě)的方式
? ? ? ? ?[root@oldboy ~]# grep -i "ftp" pass
? ? ? ? ?ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
(9)過(guò)濾pass文件中以sync結(jié)尾中,或者ftp相關(guān)的行,打印出來(lái),同時(shí)不區(qū)分大小寫(xiě)
? ? ? ? ?[root@oldboy ~]# grep -Ei "sync$|ftp" pass
? ? ? ? ?sync:x:5:0:sync:/sbin:/bin/sync
? ? ? ? ?ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin