文件管理 : 復(fù)制、查看和篩選
1腺办、回顧:
??? 1)焰手、mkdir ? 創(chuàng)建目錄
? ??? 2)糟描、touch ? 創(chuàng)建文件
? ? ? 3)怀喉、mv?????? 移動(dòng)或重新命名
? ??? 4)、rm??????? 刪除文件
2船响、今日內(nèi)容:
? 1)躬拢、cp: 復(fù)制命令
???????? -v:詳細(xì)顯示命令執(zhí)行的操作? ?
???????? -r: 遞歸處理目錄與子目錄? ?
???????? -p: 保留源文件或目錄的屬性
(1).將當(dāng)前目錄下的file文件,復(fù)制到/tmp/目錄下,并重新命名為 file_copy
???????? [root@oldboyedu ~]#? cp file /tmp/file_copy
???????? [root@oldboyedu ~]# ls /tmp/file_copy
???????? /tmp/file_copy
(2).將file1復(fù)制到/tmp目錄下
???????? [root@oldboyedut ~]# cp file1 /tmp/ [很少會(huì)使用cp file1 /tmp/file1 這種命令]
(3).在拷貝文件的過程中,保持文件原有的屬性不發(fā)生變化
???????? a.經(jīng)過修改將文件權(quán)限和身份全部做了改變
???????? -rwxrwxrwx. 1 adm adm 0 Jul 29 10:03 file
???????? b.如果不做其他操作,在拷貝的過程中,文件權(quán)限和身份都會(huì)發(fā)生變化了
???????? [root@oldboyedu ~]# cp file /tmp/
? ? ? ? ?[root@oldboyedu ~]# ll /tmp/file
? ? ? ? ? -rw-r--r--. 1 root root 0 Jul 29 10:11 /tmp/file
???????? c.如果在拷貝過程中加上-p參數(shù),將保存文件原有的屬性
???????? [root@oldboyedu ~]# cp -p file /tmp/
? ? ? ? ? [root@oldboyedu ~]# ll /tmp/file
? ? ? ? ? ?-rwxrwxrwx. 1 adm adm 0 Jul 29 10:03 /tmp/file
(4).拷貝一個(gè)目錄,并且目錄中有很多的子文件 (-r:遞歸復(fù)制)
???????? [root@oldboyedu ~]# cp /etc/ /tmp/ -r
(5).拷貝不同路徑下的不同文件至同一個(gè)目錄下 (-v:顯示詳細(xì)過程)
????????? [root@oldboyedu ~]# cp file1? /etc/hostname? /etc/hosts /opt/ -v
???????? “file1” -> ”/opt/file1”
???????? ”/etc/hostname” -> ”/opt/hostname”
??????? ”/etc/hosts” -> ”/opt/hosts”
(6).拷貝不同路徑下的不同文件和不同的目錄至同一個(gè)位置
????????[root@oldboyedu ~]# \cp -rpv file1 oldboy1/ file /etc/ /mnt/ /opt/
???????????????????????? ................................................................
????? ?? /etc/student.txt" -> "/opt/etc/student.txt"
??????? "/etc/wgetrc" -> "/opt/etc/wgetrc"
????????"/mnt/" -> "/opt/mnt"
? ? ? ? ? [root@oldboyedu ~]# ls /opt/ etc?
???????? file? file1? mnt? oldboy1
(7).在復(fù)制過程中頻繁觸發(fā)重復(fù)復(fù)制,提示確認(rèn)操作
??????? [root@oldboyedu ~]# cp -r /etc/ /opt/
???????? cp:是否覆蓋"/opt/etc/fstab"见间?
???????? [root@oldboyedu ~]#? \cp -r /etc/ /opt/
??????? /:代表去除原有的別名的屬性聊闯,只保留當(dāng)前的屬性
? 2)、查看文件內(nèi)容
(1).cat
???????? [root@oldboyedu ~]# cp /etc/passwd ./pass
???????? [root@oldboyedu ~]# cat pass? ? ? ? 查看文件的所有內(nèi)容,從頭到尾
???????? [root@oldboyedu ~]# cat -n pass? ? 查看一個(gè)文件有多少行
???????? [root@oldboyedu ~]# cat -A pass? ? 查看文件的特殊符號(hào), 比如文件中存在tab鍵
????? tac 操作與cat相似米诉,tac是文件從尾部向頭部倒序顯示
???? *cat擴(kuò)展使用,創(chuàng)建一個(gè)文件,并往里寫入內(nèi)容*
? ? ? ? [root@oldboyedu ~]# cat >> test.txt <<EOF ??
? ? ? ? test1
???? ?? test2
???? ?? test3
? ? ? ? EOF
?? (以EOF開始菱蔬,以EOF結(jié)束,“EOF”可以是任意字符)
(2).less和more
???????? a.[root@oldboyedu ~]#? less /etc/services? 使用光標(biāo)上下翻動(dòng),空格進(jìn)行翻頁拴泌,q退出
????? ?? b.[root@oldboyedu ~]#? more /etc/services ?使用回車上下翻動(dòng)魏身,空格進(jìn)行翻頁,q退出
(3).head
??????? [root@oldboyedu ~]# head pass ? ?? 查看文件頭部?jī)?nèi)容蚪腐,默認(rèn)十行
??????? [root@oldboyedu ~]# head -n pass? ? 查看頭部行箭昵,-n指定行數(shù)
(4).tail
???? ?? a.[root@oldboyedu ~]#? tail pass? ? 查看文件尾部?jī)?nèi)容,默認(rèn)十行
??????? b.[root@oldboyedu ~]# tail -f /var/log/messages??? 查看文件尾部的變化
? ? ? ? ?? [root@oldboyedu ~]# tailf /var/log/messages ????? 查看文件尾部的變化
? 3)grep:過濾文件內(nèi)容
(1).過濾出pass文件中的root相關(guān)的行
???????? [root@oldboyedu ~]# grep "root" pass
(2).在過濾pass文件中,匹配以root開頭的行
???????? [root@oldboyedu ~]# grep "^root" pass
(3).過濾pass文件中,匹配以bash結(jié)尾的行
???????? [root@oldboyedu ~]# grep "bash$" pass
(4).顯示行號(hào)
???????? [root@oldboyedu ~]# grep -n "bash$" pass
(5)過濾除了ftp的行,其他的全部顯示
???????? [root@oldboyedu ~]# grep -v "ftp" pass
(6).忽略大小寫方式
??????? [root@oldboyedu ~]# grep -i "ftp" pass
(7).過濾pass文件中以sync結(jié)尾的,或者ftp相關(guān)的行,打印出來.同時(shí)不區(qū)分大小寫
??????? [root@oldboyedu ~]# grep? -Ei "sync$|ftp" pass
(8).擴(kuò)展了解
???????? a.過濾/var/log/secure文件中Failed字符串,并打印它的下2行
???????? # grep -n -A 2 "Failed" /var/log/secure
??????? b.過濾/var/log/secure文件中Failed字符串,并打印它的上2行
??????? # grep -n -B 2 "Failed" /var/log/secure
??????? c.過濾/var/log/secure文件中Failed字符串回季,并打印它的上下各2行
??????? # grep -n -C 2 "Failed" /var/log/secure
(9).grep相關(guān)練習(xí)題
0家制、顯示當(dāng)前pass文件中,root、adm或ftp用戶相關(guān)的信息
??????? [root@oldboyedu ~]# grep -E "^root|^ftp|^adm" pass
??????? root:x:0:0:root:/root:/bin/bash
??????? adm:x:3:4:adm:/var/adm:/sbin/nologin
??????? ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
1泡一、顯示/proc/meminfo文件中以不區(qū)分大小的s開頭的行颤殴;
??????? [root@oldboyedu ~]# grep -i "^s" /proc/meminfo
2、顯示/etc/passwd中以nologin結(jié)尾的行;
??????? [root@oldboyedu ~]# grep "nologin$" /etc/passwd
3瘾杭、顯示/etc/inittab中以#開頭诅病,而后又跟了任意字符的行;
???????? [root@oldboyedu ~]# grep -n? "^# .*" /etc/inittab
注意 :.? :代表任意單個(gè)字符? [a-z]? [A-Z] ? [0-9]
? ? ? ? ? ? *? :表示所有
? ? ? ? ? ? .* :代表所有的任意字符