您的位置:首页 > 运维架构 > Linux

Linux学习之路——第三章:Linux常用命令(二)文件处理命令

2019-06-02 08:57 281 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/sugar_star/article/details/90709992

Linux学习之路——目录
https://www.geek-share.com/detail/2771040716.html

上节内容:ls、cd、pwd、mkdir、rmdir、cp、mv、rm
本节内容:touch、cat、more、less、head、tail、ln

二、文件处理命令

1.touch命令

touch命令能够创建一个空文件供使用者修改。

在tmp目录下创建一个chengyuan文件:

和上一节提到的mkdir创建目录一样,touch同样可以创建名称带空格的文件,而且文件名除了代表根目录的/以外,所有字符基本都可使用:

PS:使用tab键可以自动添补后续内容,比如这里你想要删掉asdg &*&*文件,只需输入 rm -f a,然后按tab键即可。

2.cat命令

cat命令能够显示文件的内容,其选项有:
-n: 显示行号

如果我们使用cat命令查看刚创建的chengyuan文件:

可以看到什么显示都没有,因为chengyuan是个空文件。现在使用cat命令查看一个有内容的文件,如etc目录下的issue文件:

这就是issue文件的内容,并且还显示了行号告诉我们该文件一共有3行。
cat命令还可以反向输入,从尾到头显示文件内容,但tac命令就没有-n选项了:

3.more命令

cat命令在文件内容非常多的时候不太好使用,因为cat会将文件内容全部显示出来,而这时候more命令就很好用了,more命令能够分页显示文件内容,其可进行操作的有:
空格/f:		翻页
Enter:		下一行
q/Q	:		退出查看

现在使用more命令查看etc目录下的services文件:

(#号开头的都是注释)
按下空格/f键:

按下Enter键:

按q或Q退出more命令,回到命令行:

4.less命令

less命令同样是分页显示文件内容的命令,但可执行的操作更多:
空格/f/Pagedown:	向下翻页
Pageup:			向上翻页
Enter/下方向键:		向下换行
上方向键:           向上换行
/键:				进入搜索模式
q/Q:				退出查看

同样的,使用less命令查看services文件,输入less /etc/services:
翻页换行操作大家自行操作,这里展示less的搜索模式。假如我们要在文件中搜索service,则输入/service,回车:
可以看到文件中的service都被反白标示了出来,若不是要找的service,按n查找下一个service。如此时的第一个service是第一行中的service,

而按下n后的service则是第三行中的service。

5.head与tail

(1)head命令

head命令能够显示文件前十行(默认)的内容,其选项有:
-n:	指定显示行数

比如显示services文件的前十行:

(2)tail命令

与head命令对应,tail命令能显示文件倒数十行(默认)的内容,其选项有:
-n:	指定显示行数
-f:	动态显示文件末尾内容

使用tail命令显示services文件的后十行:

Linux中有一个文件/var/log/message,这是一个日志文件,现在我们使用tail命令动态显示该文件的内容:
注意到输入命令后并没有回到命令行,这时候我们使用SecureCRT创建一个新的会话(该步骤和第二章的内容一致):
现在除了一个正在运行tail命令的192.168.0.105会话之外,还有一个192.168.0.105(1)会话。显示我们在右侧会话中输入ifconfig eth0:1 192.168.0.104(这条命令会给我们的eth0网卡多绑定一个IP):
可以看到在左侧会话中,message文件将这个行为记录了下来。要想退出动态显示,使用快捷键Ctrl+c。

这样就回到了我们的命令行。

6.ln

link,ln命令能对一个文件生成硬/软链接文件。其选项有:
-s:		生成软连接

在学习ls命令的时候,使用其-l选项显示文件的详细信息时,有提到一个文件硬链接数,比如我们使用ls查看一下etc目录下issue文件的详细信息:
此时issue文件的硬链接数为47,现在我们使用先将issue文件复制到tmp目录下,在tmp这个临时目录下进行操作,使用ln命令对issue文件生成一个硬链接和一个软链接:

硬链接issue.hard:

与原文件issue的所有属性(包括修改时间)一样的,就相当于cp -p命令;
除了所有属性都一样以外,硬链接还与原文件保持同步更新,即:原文件内容或属性发生变化,则硬链接发生同样的变化;
硬链接不能跨分区使用,也不能对目录使用。

软连接issue.soft:

和原文件不一样,首先它是个链接而不是文件;
所有人对软链接都有读写执行(rwx)权限,其实软链接就相当于我们windows中的快捷方式,从文件名位置的显示就可以看出:issue.soft -> issue,软链接是指向原文件的,所以每个人对软链接都具有全部权限;
可以跨分区使用,并且能对目录使用。

(1)硬链接同步更新

我们先用cat命令查看issue.hard与issue的内容:

两个文件的内容是一样的,现在输入echo “ni hao” >> /tmp/issue 改变原文件的内容(echo命令以后讲到),再查看两个文件的内容:

注意到硬链接文件中也多了ni hao这个内容。这就是硬链接的同步更新功能。

(2)原文件、硬链接和软链接的识别号

以前我们有提到过每个文件都有一个识别号,现在我们来看看原文件、硬链接和软链接的识别号:
可以看到原文件与硬链接的识别号是一样的,而软链接是不一样的。

(3)原文件删除

我们将tmp目录的issue文件删除,看看硬软链接会怎样变化:
硬链接文件依然能正常使用,而软链接文件出现红色报错。

(4)跨分区与目录

在安装Linux系统时,我们分了swap、/boot、/home以及/这4个分区。现在我们尝试将tmp目录下issue文件的硬链接创建在/boot分区下:

硬链接会报错,显示无效的跨设备连接,这就是因为硬链接无法跨分区。而软链接就可以。
现在我们在尝试对tmp目录生成硬软链接:

硬链接会报错,而软链接不会。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: