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
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