Linux自学之旅-基础命令(四)

Linux自学之旅-基础命令(四)


前言

1.上一节我们讲了一部分的文件操作命令,主要介绍了stat、touch、cat、more、less这几个命令的作用

2.这一节我们继续来讲几个文件操作命令head、tail、ln、


提示:以下是本篇文章正文内容

一、前节回顾

上一节我们一共讲了{
stat:查看文件或目录的详细信息
touch:创建文件或修改文件时间
cat:查看文件内容并标准输出
more:分屏查看文件
less:分行查看文件
}等命令,还没学习的请点击下方链接进去:
                         Linux文件操作命令1

二、文件操作命令(二)

1.head命令

我们知道cat、more、less都是可以查看文件的命令,那么我们Linux中还有很多种查看文件的命令,head命令可以从文件内容头部开始阅览你所选择的行数的内容(就是head可以指定浏览行数,然后默认从内容头部开始浏览你指定的行数的内容)

  • 命令名称:head
  • 命令全称:output the first part of files
  • 所在路径:/usr/bin/head
  • 执行权限:所有用户
  • 功能描述:从文件内容头部开始查看
命令格式
head [选项] 文件名称
选项:
-n 行数:从头部开始根据输入的行数查找
-v:显示文件名

我们来举个例子 :

[root@localhost ~]# head -n 12 /var/log/anaconda.log 
08:55:48,528 INFO    : kernel command line: initrd=initrd.img BOOT_IMAGE=vmlinuz 

08:55:48,528 DEBUG   : readNetInfo /tmp/s390net not found, early return
08:55:48,528 INFO    : anaconda version 13.21.229 on x86_64 starting
08:55:51,643 DEBUG   : Saving module ipv6
08:55:51,643 DEBUG   : Saving module iscsi_ibft
08:55:51,643 DEBUG   : Saving module iscsi_boot_sysfs
08:55:51,643 DEBUG   : Saving module pcspkr
08:55:51,643 DEBUG   : Saving module edd
08:55:51,643 DEBUG   : Saving module iscsi_tcp
08:55:51,643 DEBUG   : Saving module libiscsi_tcp
08:55:51,643 DEBUG   : Saving module libiscsi
[root@localhost ~]# 

(如图加“head -n 12 xx”意思是查看这个文件的前12行数据)
注:head不加-n 行数的话,会自动显示前10行数据

2.tail

既然有显示文件头部前x行的命令,那么也有从文件内容尾部开始进行查看的命令,tail命令可以从文件内容尾部开始根据指定行数查看

  • 命令名称:tail
  • 命令全称:output the last part of files
  • 所在路径:/usr/bin/tail
  • 执行权限:所有用户
  • 功能描述:从文件尾部开始查看内容
命令格式
tail [选项] 文件名
-n 行数:根据指定的行数从文件尾部开始进行查看内容
-f:监听文件新增的内容

(这个这里不好进行演示,这个加了-f选项之后可以理解为如果说同时
有两个人在登录你这个系统,现在其中有一个
人用tail加了-f选项打开一个文件,我们知道tail会从文件尾部开始查看,
那么如果加了-f选项之后,内容会一直停留在尾部,然后如果说这时候另外一个
登录你这个系统的人直接打开了和你一样的文件,并在里面新添加了一些信息,
那么第一个用tail加了-f选项的那个人那里就会通过-f选项自动在尾部同步
更新这条新添加的信息)--简单理解为当你tail加了-f选项查看一个文件,
那么如果这个文件在你加了-f选项这期间被添加了新的内容,那么加了-f选项的那个人
会同步收到这条新的内容,而不用退出文件查看之后再重新查看你的文件。

这个就不演示了,反正head就是从文件内容头部开始看,tail可以从文件内容尾部开始查看。


3.硬链接与软链接

在开始说下一个命令前,我来说说Linux底下的硬链接与软链接究竟是个什么?

1.但在说这两个东西前,我们先来说说windows下的一点东西,我们用过windows的应该都知道,比如你安装了一个微信在电脑,它在安装成功之后都会自动在你桌面会创建一个微信的图标,并且点击之后可以直接进去微信这个应用程序。看到桌面的这个微信图标的左下角的箭头没,这个代表这个微信是一个桌面快捷方式,就是代表它只是源文件复制出来的一个方便我们直接在桌面点击的方式罢了
在这里插入图片描述


2.然后我们右击这个桌面的微信,发现这个右键菜单中有一个“打开文件所在的位置”,我们直接点进去
在这里插入图片描述


3.进来之后我们可以发现,这个才是我们的本体微信,桌面的微信只是我们本体微信为了让用户图方便直接可以打开而特地创建的罢了,你删除桌面的快捷方式的话本体微信是不会收到任何干扰的,但如果你删了本体微信,那么桌面的微信快捷方式将无法使用。他们就是这样的一个关系
在这里插入图片描述


4.那么回到我们的话题,Linux下的硬链接和软链接究竟是个什么呢?

5.“软链接”:你可以将Linux下的软链接就想象成windows下的微信的快捷方式。它只是你本体的程序为了图方便而创建出来的而已


软链接的特征{

5.1.软链接和主程序的内容互相共享,其中有一个改变了的话另外一个也会变

(就是比如你用快捷方式打开的微信里面给好友发了一条信息,那么你用微信主程序打开的话你会发现那条信息也还是会是发出去了的状态)


5.2.删除软链接的话,主程序不会被影响;但是删除源文件的话,软链接会被影响

5.3.软链接没有实际数据,它只是引用了源程序,不论源文件多大,软链接大小都不会变

(这个很好理解嘛,windows也一样的,你的快捷方式只是引用了源程序而已,就是说你点击这个快捷方式微信的时候,它会是去引用你文件夹里的真正的微信去执行,而不是单独执行)

5.4.软链接可以链接目录

(就是说你可以给目录创建一个快捷方式一样)

5.5.软链接和源文件拥有不同的Inode和Block

(这个没讲,可以先理解为就是你的源文件和软链接都是各自存在不同的地方,Inode和Block可以更好的助你找到你的软链接和源文件)


}

6.“硬链接”:硬链接可以看成是复制源文件,和源文件一模一样。

(可以看成是复制出一个一模一样的源文件,可以正常使用,源文件和硬链接之间数据共享,其次删除了源文件也不影响硬链接的正常使用)

硬链接的特征{
6.1.源文件和硬链接的Inode和Block一模一样

6.2.修改任意一个文件,另外一个也会一起变

(这个和软链接一样,修改其中一个另外一个也会一起变)

6.3.删除任意一个文件,另外一个继续可以用

(你无论是删除源文件还是硬链接,另外一个可以继续用,不会数据丢失)

6.4.硬链接不能链接目录

}
正常情况下的话我们会使用软链接更多一些,硬链接不常用。

4.ln命令

前面我们说了软链接和硬链接的概念,那么他们怎么创建呢?ln命令就是可以创建出软链接和硬链接

  • 命令名称:ln
  • 命令全称:make links between file
  • 所在路径:/bin/ln
  • 执行权限:所有用户
  • 功能描述:文件之间建立链接
命令格式
ln [选项] 源文件 目标文件
选项:
-s:创建软链接;不加-s就是默认创建硬链接
-f:强制创建,如果目标文件已经存在,则覆盖掉目标文件后继续创建

我们来举两个例子:

(创建软链接)
[root@localhost aa]# ls
snljh
[root@localhost aa]# ln -s snljh /tmp/snljh2
[root@localhost aa]# ls /tmp/
snljh2  yum.log
[root@localhost aa]# ls -lh /tmp/
总用量 0
lrwxrwxrwx. 1 root root 5 1月  15 07:22 snljh2 -> snljh
-rw-------. 1 root root 0 1月  11 11:16 yum.log
[root@localhost aa]# 

(我们用“ln -s snljh /tmp/snljh2”来创建一个软链接,
这句话的意思是我将snljh这个文件创建出一个软链接并将它放到根目录下的tmp
目录下,并将它改名为snljh2)
(我们直接”ls -lh /tmp/“:可以直接查看到/tmp目录底下的信息,我们发现
snljh2这个文件后面有个箭头是指向snljh的,只有有这个箭头的文件就代表它是个
软链接,指向哪个源文件)
(创建硬链接)
[root@localhost aa]# ls
snljh
[root@localhost aa]# ln snljh /tmp/snljh3
[root@localhost aa]# ls -lh /tmp/
总用量 0
lrwxrwxrwx. 1 root root 5 1月  15 07:22 snljh2 -> snljh
-rw-r--r--. 2 root root 0 1月  14 08:37 snljh3
-rw-------. 1 root root 0 1月  11 11:16 yum.log
[root@localhost aa]# ll -h (ls -lh的简写,一样的作用)
总用量 0
-rw-r--r--. 2 root root 0 1月  14 08:37 snljh
[root@localhost aa]# 

(我们直接”ln snljh /tmp/snljh3“:意思是创建一个硬链接,并将它放到根目录下
的tmp目录下,并将它改名为snljh3.)
(我们可以用”ll -h“查看到我们创建出的硬链接和源文件除了名字不一样,
其他一模一样,几乎看不出这个是硬链接,如何看硬链接,我们下次有机会再说)

总结

我们的文件操作命令就到这里了,本节我们讲了{
1.head命令:查看文件头部内容
2.tail命令:查看文件尾部内容
3.硬链接:源文件的引用,与源文件基本一致
4.软链接:源文件的引用,好比windows下的快捷方式
5.ln命令:创建文件之间的链接
}

我们下节来说文件目录都可以操作的命令,我是结花,我们下次见。

猜你喜欢

转载自blog.csdn.net/qq313088385/article/details/112647152
今日推荐