Linux基本文件操作练习(附答案分析)

1、文件的创建与删除

(1)练习使用-p或者--parents在桌面上同时创建多级目录,例如xx/yy/zz。

mkdir - p  xx/yy/zz或者mkdir --parents xx/yy/zz

[tom@iZbp12r8eimkkdor4011j3Z ~]$ mkdir -p xx/yy/zz
[tom@iZbp12r8eimkkdor4011j3Z ~]$ ls
xx
#注意,如果想一条命令创建多级的目录,需要加上-p的选项

(2)依次删除zz、yy、xx目录

rmdir xx/yy/zz
#删除zz文件
rmdir xx/yy

#删除yy文件
rmdir  xx
#删除xx

(3)重新创建xx/yy/zz,同时删除这几级目录

#方法一
rmdir -p xx/yy/zz
#方法二
rm -r xx

2、文件的基本操作

前提:在用户主目录下创建名为dir1的目录,并且用touch命令在主目录下创建名为myfile的文件(用cat>文件名,输入文本后,以Ctrl+d结束输入)

[tom@iZbp12r8eimkkdor4011j3Z ~]$ touch myfile
#'>'输出重定向,将输入的内容输出到文件中
[tom@iZbp12r8eimkkdor4011j3Z ~]$ cat>myfile
this is the value of myfile
[tom@iZbp12r8eimkkdor4011j3Z ~]$ mkdir dir1
[tom@iZbp12r8eimkkdor4011j3Z ~]$ ls
dir1  myfile

(1)用cp命令复制主目录下的myfile文件到dir1目录下

[tom@iZbp12r8eimkkdor4011j3Z ~]$ cp myfile dir1
[tom@iZbp12r8eimkkdor4011j3Z ~]$ ls
dir1  memos  myfile
[tom@iZbp12r8eimkkdor4011j3Z ~]$ cd dir1
[tom@iZbp12r8eimkkdor4011j3Z dir1]$ ls
myfile

(2)将dir1目录下的myfile文件改名为myfile.old

[tom@iZbp12r8eimkkdor4011j3Z ~]$ cd dir1
[tom@iZbp12r8eimkkdor4011j3Z dir1]$ mv myfile myfile.old
[tom@iZbp12r8eimkkdor4011j3Z dir1]$ ls
myfile.old

(3)将主目录下的文件myfile移动到dir1目录下

[tom@iZbp12r8eimkkdor4011j3Z ~]$ cd 
[tom@iZbp12r8eimkkdor4011j3Z ~]$ ls
dir1  memos  myfile
[tom@iZbp12r8eimkkdor4011j3Z ~]$ mv myfile dir1
[tom@iZbp12r8eimkkdor4011j3Z ~]$ ls
dir1  memos
#文件被移动,所以不存在于主目录下了

(4)将dir1目录中的文件复制到主目录下的xx目录中(xx不存在),之后查看xx的内容

[tom@iZbp12r8eimkkdor4011j3Z ~]$ cp -r dir1 xx
#原本不存在xx目录则会自动创建
[tom@iZbp12r8eimkkdor4011j3Z ~]$ ls
dir1  memos  xx
[tom@iZbp12r8eimkkdor4011j3Z ~]$ cd xx
[tom@iZbp12r8eimkkdor4011j3Z xx]$ ls
myfile  myfile.old

(5)在主目录下创建yy目录,将dir1目录递归复制到yy目录中,之后查看yy的内容

[tom@iZbp12r8eimkkdor4011j3Z ~]$ ls
dir1  xx
[tom@iZbp12r8eimkkdor4011j3Z ~]$ mkdir yy
[tom@iZbp12r8eimkkdor4011j3Z ~]$ cp -r dir1 yy
[tom@iZbp12r8eimkkdor4011j3Z ~]$ ls yy
dir1
#最终会连同dir1都复制到yy的目录底下

(6)改变工作目录为dir1,列出所有扩展文件名为old的文件

cd dir1
ls *.old

(7)用wc命令显示myfile文件中的行数、字数和字符数

[tom@iZbp12r8eimkkdor4011j3Z ~]$ cd dir1
[tom@iZbp12r8eimkkdor4011j3Z dir1]$ wc myfile
 1  6 28 myfile
#行数 、字数、字符数

3、在用户主目录下创建名为memos的目录,在memos目录下创建文件file1, file2, file3, file12, 12file,fileab,afile,bfile,abfile,每个文件适当输入一定内容。

[tom@iZbp12r8eimkkdor4011j3Z ~]$ mkdir memos 
[tom@iZbp12r8eimkkdor4011j3Z ~]$ cd memos
[tom@iZbp12r8eimkkdor4011j3Z memos]$ touch file1 file2 file3 file12 12file fileab afileb
 bfile afile abfile
[tom@iZbp12r8eimkkdor4011j3Z memos]$ ls
12file  abfile  afile  afileb  bfile  file1  file12  file2  file3  fileab

(1)列出memos目录中文件名以file开头的文件

ls file*

(2)查看memos目录中所有文件的i节点号

[tom@iZbp12r8eimkkdor4011j3Z memos]$ ls -i
83393 12file  83430 afile   83429 bfile  83392 file12  83361 file3
83431 abfile  83404 afileb  83337 file1  83338 file2   83396 fileab

(3)显示文件内容

1) 显示file1文件的内容

cat file1

 2) 同时显示文件file1,file2,file3的内容

cat file1 file2 file3

3) 显示文件fileab的内容,要求带行号

cat -n fileab

(4)删除文件

1) 删除memos目录中的一个文件

rm file1

 2) 同时删除memos目录中的两个文件

rm file2 file3

 3) 删除时使用-i选项,体会-i选项的用法

[tom@iZbp12r8eimkkdor4011j3Z memos]$ rm -i afile
rm: remove regular empty file 'afile'? y
#输入y代表确认删除n代表取消删除

4、将/etc/yum.conf复制为admin用户桌面上的文件yumfile,为yumfile创建硬链接文件和符号链接文件,然后查看链接文件的索引节点号和文件内容。接下来修改源文件、硬链接文件、符号链接文件,查看其他两个文件内容的变化。然后删除源文件,观察硬链接文件和符号链接文件的变化。

[tom@iZbp12r8eimkkdor4011j3Z ~]$ cp /etc/yum.conf yumfile
[tom@iZbp12r8eimkkdor4011j3Z ~]$ ln yumfile ylinkfile  #创建硬链接
[tom@iZbp12r8eimkkdor4011j3Z ~]$ ln -s yumfile softlinkfile #创建软链接(符号链接)

[tom@iZbp12r8eimkkdor4011j3Z ~]$ ll
total 8
lrwxrwxrwx. 1 tom tom   7 Dec 24 23:24 softlinkfile -> yumfile     #软链接文件有箭头指引
drwxrwxr-x. 2 tom tom  38 Dec 24 23:01 xx
-rw-r--r--. 2 tom tom 149 Dec 24 23:23 ylinkfile                   #硬链接与源文件的i结点数都是149
-rw-r--r--. 2 tom tom 149 Dec 24 23:23 yumfile
drwxrwxr-x. 3 tom tom  18 Dec 24 23:05 yy

  • 硬链接文件的大小和源文件的大小一样,但是软链接文件的大小通常是源文件名的字节数
  • 不论硬链接文件还是软链接文件,内容都和源文件yumfile一样
  • 修改硬连接文件或者符号链接文件,另两个文件同样变化
  • 删除源文件,硬链接文件依然存在,不受影响,但是软链接文件变成死链接,文件打不开

5.tail head的用法

#示例:如果想要打印11-20行的内容
1.先取文件的前20行,再取出来其中的后10行就是11-20行的内容了
head -n 20 hello.txt | tail -n 10
如果同时想要列出来行号进行验证:
cat -n hello.txt | head -n 20 | tail -n 10

6.文件查找

(1)在/etc中查找名为passwd的文件

find /etc -name passwd

(2)在主目录及其子目录中查找名为myfile的文件

[tom@iZbp12r8eimkkdor4011j3Z ~]$ find ~ -name myfile 
/home/tom/xx/myfile
/home/tom/yy/dir1/myfile

(3)在主目录中查找名字中包含“D”的所有文件和目录

[tom@iZbp12r8eimkkdor4011j3Z ~]$ find ~ -name "*D*"
/home/tom/Dwrgegi
/home/tom/egnuiD

(4)查找主目录中的所有目录文件

[tom@iZbp12r8eimkkdor4011j3Z ~]$ find ~ -type d
/home/tom
/home/tom/xx
/home/tom/yy
/home/tom/yy/dir1

(5)从/home开始查找属于admin的所有文件

find /home -user admin

7.文件内容查找

(1) 从 /etc/passwd 文件中查找mail用户的信息

[tom@iZbp12r8eimkkdor4011j3Z ~]$ grep mail /etc/passwd
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

(2) 从 /etc/passwd 文件中查找 shells 为 /bin/bash的所有账户

[tom@iZbp12r8eimkkdor4011j3Z ~]$ grep "bin/bash" /etc/passwd
root:x:0:0:root:/root:/bin/bash
tom:x:1002:1002::/home/tom:/bin/bash
git:x:1003:1003::/home/git:/bin/bash

(3) 从 /etc/passwd 文件中查找 UID or GID (第三或第四列) 为 5 的所有账户

[tom@iZbp12r8eimkkdor4011j3Z ~]$ grep :5: /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync

(4) 从 /etc/passwd 文件中查找 UID和GID都在 70-79 之间的所有账户

[tom@iZbp12r8eimkkdor4011j3Z ~]$ grep :7[0-9]:7[0-9]: /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin

(5) 显示/etc/nfs.conf文件中所有的非注注释行(注释行以#开头)

grep  -v  ^#  /etc/nfs.conf

(6) 显示/etc/yum.conf文件中以gpg开头的行

[tom@iZbp12r8eimkkdor4011j3Z ~]$ grep ^gpg /etc/yum.conf 
gpgcheck=1

上一篇:C#开发BIMFACE系列11 服务端API之源文件删除


下一篇:js操作本地txt文件,获取数据(中文)