Linux 文件相关命令

来自CloudWiki
跳转至: 导航搜索

文件相关命令

统计单词数量—— wc

用途:统计文件中的单词数量(Word Count)等信息

格式:wc [选项]... 目标文件...

常用命令选项

  • -l:统计行数
  • -w:统计单词个数
  • -c:统计字节数


[root@localhost ~]# wc /etc/hosts
  4  23 185 /etc/hosts

为文件建立链接 —— ln

用途:为文件或目录建立链接(Link)

格式:ln [-s] 源文件或目录… 链接文件或目标目录

常用命令选项

  • -s:建立符号链接文件(省略此项则建立硬链接)

关于链接文件

  • 符号链接:指向原始文件所在的路径,又称为软链接
  • 硬链接:指向原始文件对应的数据存储位置
  • 不能为目录建立硬链接文件
  • 硬链接与原始文件必须位于同一分区(文件系统)中
[root@iZwz9a4d6crd1w205b54pmZ ~]# cd test
[root@iZwz9a4d6crd1w205b54pmZ test]# mkdir mediawiki2.29.1
[root@iZwz9a4d6crd1w205b54pmZ test]# ln -s mediawiki2.29.1 mediawiki
[root@iZwz9a4d6crd1w205b54pmZ test]# ls
a.txt  mediawiki        mke2fs.conf  my.txt   theDir
b.txt  mediawiki2.29.1  myDir        testDir

显示文件全部内容 —— cat

用途:显示出文件的全部内容

[root@localhost ~]# cat  /etc/host.conf
order hosts,bind
[root@localhost ~]# cat  /etc/resolv.conf
search localdomain
[root@localhost ~]# cat  /etc/resolv.conf  /etc/host.conf
search localdomain
order hosts,bind


分页显示文件内容 — more、less 、head、tail

more命令

用途:全屏方式分页显示文件内容

交互操作方法:

  • 按Enter键向下逐行滚动
  • 按空格键向下翻一屏、按b键向上翻一屏
  • 按q键退出
[root@iZwz9a4d6crd1w205b54pmZ test]# more /etc/kdump.conf

less命令

用途:与more命令相同,但扩展功能更多

交互操作方法:

  • 与more命令基本类似,但个别操作会有些出入
  • 按Page up/down 翻页,按上下键逐行查看,按字母q退出

[root@iZwz9a4d6crd1w205b54pmZ test]# less /etc/kdump.conf

文件内容操作命令 ——head、tail

用途:查看文件开头的一部分内容(如果不指定参数n,默认为10行)

格式:head -n 文件名

[root@iZwz9a4d6crd1w205b54pmZ test]# head -5 /etc/my.cnf
[mysql]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock


tail命令

用途:查看文件结尾的少部分内容(默认为10行)

格式:tail -n 文件名

tail -f 文件名

[root@localhost ~]# tail -2 /var/log/messages
Sep  8 15:49:29 localhost scim-bridge: Cleanup, done. Exitting...
Sep  8 15:49:29 localhost Cleanup, done. Exitting...

在文件中查找指定内容—— grep

  • 用途:在文件中查找并显示包含指定字符串的行
  • 格式:grep [选项]... 查找条件 目标文件
  • 常用命令选项
    • -n: 显示行号
    • -i:查找时忽略大小写
    • -v:反转查找,输出与查找条件不相符的行
[root@localhost ~]# grep  -n  root /etc/fstab
9:/dev/mapper/centos-root /                       ext4    defaults        1 1
[root@localhost ~]#


  • 查找条件设置
    • 要查找的字符串以双引号括起来
    • “^……”表示以……开头,“……$”表示以……结尾
    • “^$”表示空行

更多grep用法,请参考:https://www.cnblogs.com/flyor/p/6411140.html

练习

(13)用less命令分屏查看文件profile的内容,注意练习less命令的各个子命令,如b、p、q等,并对then关键字查找。

(14)用grep命令在profile文件中对关键字then进行查询,并与上面的结果比较。

(15)给文件profile创建一个软链接lnsprofile和一个硬链接lnhprofile。

(16)长格形式显示文件profile、lnsprofile和lnhprofile的详细信息。注意比较3个文件链接数的不同。

(17)删除文件profile,用长格形式显示文件lnsprofile和lnhprofile的详细信息,比较文件lnhprofile的链接数的变化。

(18)用less命令查看文件lnsprofile的内容,看看有什么结果。

(19)用less命令查看文件lnhprofile的内容,看看有什么结果。

(20)删除文件lnsprofile,显示当前目录下的文件列表,回到上层目录。

(21)用tar命令把目录test打包。

(22)用gzip命令把打好的包进行压缩。

(23)把文件test.tar.gz改名为backup.tar.gz。

(24)显示当前目录下的文件和目录列表,确认重命名成功。

(25)把文件backup.tar.gz移动到test目录下。

(26)显示当前目录下的文件和目录列表,确认移动成功。

(27)进入test目录,显示目录中的文件列表。

(28)把文件backup.tar.gz解包。

(29)显示当前目录下的文件和目录列表,复制test目录为testbak目录作为备份。

(30)查找root用户自己主目录下的所有名为newfile的文件。

(31)删除test子目录下的所有文件。

(32)利用rmdir命令删除空子目录test。

回到上层目录,利用rm命令删除目录test和其下所有文件。

实训思考题

下面这些命令分别代表什么意思?

1.ls *.?

2.more[A-Z]*

3.ls /etc/[!a-m]*

4.ls [a-z]*[0-9]

5.alias dir=’ls –d [a-z]*’

6.find ./tmp /usr/tmp –name core –exec rm{}\;

7.grep ‘^user[0-9]$’ /etc/passed

8.grep ‘^[A-Za-z]*[0-9]$’ datafile

9.mount –t vfat /dev/hda1 /mnt/winc