文件操作包括创建文件、查看文件、复制文件、移动文件、删除文件,接下来详细介绍每种操作。
1. 创建文件
用户通过touch命令可以创建一个空白文件,也可以设置文件、属性,具体如下所示。
[root@localhost ce]# touch qf.txt
#查询更改时间
[root@localhost ce]# ll qf.txt
-rw-r--r--. 1 root root 0 6月 4 00:36 qf.txt
#添加
[root@localhost ce]# echo "www.qq.com" >> qf.txt
[root@localhost ce]# ll qf.txt
-rw-r--r--. 1 root root 11 6月 4 00:37 qf.txt
#更改时间
[root@localhost ce]# touch -d "2018-03-30 16:41" qf.txt
[root@localhost ce]# ll qf.txt
-rw-r--r--. 1 root root 11 3月 30 2018 qf.txt
[root@localhost ce]# ls -l qf.txt
-rw-r--r--. 1 root root 11 3月 30 2018 qf.txt
[root@localhost ce]#
查看qf.txt文件的属性,文件时间为16:41。用echo命令写入新的内容到qf.txt文件中,再次查看,文件时间已经变为16:42。添加“-d”参数可以修改文件时间。
2. 查看文件
(1)cat命令
用户使用cat命令可以查看内容较少的文件,添加“-n”参数可以显示行号,添加“-A”参数显示不可显示控制字符(换行符/制表符)。使用cat命令查看hosts文件,具体如下所示。
[root@localhost ce]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost ce]#
使用cat命令查看内容较多的文件时,整个文件的内容从上到下滚动显示,用户来不及阅读内容,就到达了文件末尾。为了避免该问题,用户可以使用more命令查看较长的文件。
(2)more命令
more命令以逐页的方式显示文件内容,用户可以通过空格键向下翻一页,b键向上翻一页,具体如下所示。
[root@localhost ce]# more /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
--More--(33%)
(3)less命令
less 命令也是对文件或其他输出进行分页显示,可用 pageup、pagedown与键盘方向键来上下翻看文件,查找文件内容比more更容易,最后按q键退出。
(4)head命令
有些配置文件内容很多,但真正需要查看的内容只有前几行,head命令可以查看文件前几行的内容,添加“-n”参数显示文件的前n行,具体如下所示。
[root@localhost ce]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
(5)tail命令
用户使用tail命令可以查看文件后几行的内容,例如,用户对日志文件更关心最新的内容,需要从后往前查看。tail命令添加“-n”参数显示文件的后n行,添加“-f ”参数可以查看动态文件,具体如下所示。
[root@localhost ce]# tail -l /etc/passwd
sssd:x:991:985:User for sssd:/:/sbin/nologin
setroubleshoot:x:990:984::/var/lib/setroubleshoot:/sbin/nologin
saned:x:989:983:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:988:982::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
liu:x:1000:1000:liu:/home/liu:/bin/bash
(6)grep命令
用户使用grep命令可以对文件内容进行过滤、搜索关键词,从而快速找到所需内容,具体如下所示。
[root@localhost ce]# grep 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
上述命令表示显示含有root的行。
[root@localhost ce]# grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@localhost ce]#
上述命令表示显示以root开头的行。
[root@localhost ce]# grep 'bash$' /etc/passwd
root:x:0:0:root:/root:/bin/bash
liu:x:1000:1000:liu:/home/liu:/bin/bash
[root@localhost ce]#
上述命令表示显示以bash结尾的行。
3. 复制文件
用户使用cp命令可以复制文件,其语法格式如下。
cp file1(源文件) file2(目标文件)
cp命令除了复制单个文件之外,还可以复制整个目录,创建链接文件,对比新旧文件而予以更新,具体如下所示。
[root@ce~]# touch abc.txt
[root@ce ~]# echo "aaa" > abc.txt
[root@ce~]# cat abc.txt
aaa
[root@ce ~]# touch abd.txt
[root@ce ~]# echo "abb" >abd.txt
[root@ce ~]# cat abd.txt
abb
[root@ceu ~]# cp abc.txt abd.txt
cp:是否覆盖"abd.txt"? y
[root@ce ~]# cat abc.txt
aaa
[root@ce ~]# cat abd.txt
Aaa
文件目录较长时,可以用花括号括起不同的部分,具体如下所示。
[root@ce ddd]# cp -rf /aaa/bbb/ccc/ddd/a /aaa/bbb/ccc/ddd/a.bak
[root@ce ddd]# cp -rf /aaa/bbb/ccc/ddd/{a,a.bak}
4. 移动文件
mv命令可以移动或者重命名文件或目录,具体如下所示。
mv file1(源文件) file2(目标文件)
如果将一个文件移动到一个已经存在的目标文件中,则目标文件的内容将被覆盖。mv与cp的结果不同,cp对文件进行复制,文件个数增加,mv类似于文件“搬家”,文件个数并不增加,具体如下所示。
[root@ce ~]# ls
linux.txt
[root@ce ~]# mv linux.txt qiangfeng.txt
[root@ce ~]# ls
qiangfeng.txt
5. 删除文件
rm命令可以删除文件,其语法格式如下。
rm file2(目标文件或目录)
若删除目录,就需要添加“-r”参数,“-f ”参数可以跳过验证直接执行删除操作,具体如下所示。
[root@ce qf]# ls
linux.txt
[root@ce qf]# rm linux.txt
rm: remove regular empty file 'linux.txt'? y //按y键回车
使用“rm -rf ”需要格外小心,root用户不会收到提示,一旦执行命令,目录和文件肯定被删掉。脚本删除要使用绝对路径,可降低误删的概率。
如果用户使用此命令删除了根目录,整个系统就会瘫痪。一旦在工作中手误执行了此命令,后果将会非常严重。不过CentOS 7有相应的提示,避免发生重大事故,具体如下所示。
[root@qfedu qianfeng]# rm -rf /
rm: 在"/" 进行递归操作十分危险
rm: 使用 --no-preserve-root 选项跳过安全模式