Linux学习笔记【2】——文件目录管理指令

首次接触Linux,边学习边写出了这一篇博客,一方面为了巩固自身的知识,另一方面希望可以给其他刚入门的朋友提供一点点帮助。如果有内容有错误或者不准确欢迎指正。
本篇及系列文章均在CentOS虚拟机上展开。

        上篇文章带大家了解了Linux,但是对于Linux怎么操作我们还是两眼一抹黑。那么从这一篇开始,我们就来学习如何操作Linux!
        首先,我们来回答一个问题:操作系统中对于我们普通用户来说,最常用最基本的功能是什么呢?进程管理?存储管理?设备管理?还是作业管理 ?我认为都不是。最基本的,当我们拿到电脑,打开系统后最常做的事情应该是文件管理
        所以,这篇文章就带大家学习Linux里处理目录的常用命令!



列出文件目录(ls)

在刚刚进入Linux文字界面的时候,我们只能看到下列这样的代码行:

[root@hostname ~]#_

        这里显示的是提示符,内部的意思我们上一篇文章也分析过了,里面会显示当前目录信息,但是我们无法像Windows里一样,进了目录就可以看到目录里的内容。
        这时就会有人问了:难道我们在Linux里只能两眼一蒙进行操作吗?那也太不像话了!也就黑盒测试这么玩!
        诶,客官先别慌,蒙眼睛操作那是真的不像话,但是都说顾客是上帝,所以我们不能那么不像话。这不,我们提供了列出文件目录的命令ls嘛^_^。


下面给出了它的命令格式:

[root@hostname ~]#ls [选项] 参数

常用选项列表:
-a:表示列出全部文件,包括隐藏文件(.开头的文件就是隐藏文件)
-l:长数据串列出,包括文件的属性以及权限等等数据(文件属性权限信息参照上篇文章)
也可以把选项进行组合,像是-al:以长数据串列出全部文件

操作示范(环境为CentOS虚拟机,由于/目录下文件过多,ls -l会显示溢出,所以新建了个TEXT1文件夹进行演示ls命令):
在这里插入图片描述



切换目录(cd)

        学会了ls命令,我们又发现了个问题,我们能看到了,但是好像还不会动。怎么办?还是那句话,不要慌,我们还有一个“秘法”叫做cd


下面给出了它的命令格式:

[root@hostname ~]cd [参数]
cd 后面可以接三种参数:
	1.相对路径:比如cd ..就是返回上一级目录
	2.绝对路径:完全的路径名称,比如我想去根目录下的TEXT1文件夹,我们就这么写: cd /TEXT1
	3. 空着不写,就是返回对应用户的默认目录 ' ~ '(等会会在pwd中讲到默认目录) 

例子(注意文件目录的变化,TEXT1的上一级目录是 / )
在这里插入图片描述



显示目前所在目录(pwd)

*pwd莫名的感觉这个命令很可爱呢哈哈哈,像是这个qwq一样 \~(小声叨叨)*

        大家可能会对这个命令表示疑惑,既然我的提示符里都有地址了,为什么还要有这个命令呢?这不是多此一举嘛。然而,这个命令并不是多此一举,我们的提示符在显示路径的时候有两点不足:其一是显示不完全,其二是他可能在 “骗” 我们。所以这时候就需要我们用到pwd命令了。

按照惯例,下面是命令格式:

[root@hostname ~]#pwd [选项]

常用选项列表:
-P:显示出确实的路径,而非使用软链接路径。在Linux中有两种链接,一种是硬链接,
 另一种是软链接。软链接可以连接到文件夹,进入软链接后显示的并不是链接到的文件
 夹,而是软链接下,使用pwd -p就可以显示软链接所链接的实际路径而不是软链接本身
 的路径。

实例:

  1. 显示完全路径
    在这里插入图片描述
  2. 显示实际默认路径
    在这里插入图片描述
    在这里插入图片描述
            诶,这两个的默认地址不都是~嘛?为什么用pwd显示出现了这么两种情况呢?
            这是因为Linux是多用户操作系统,不同用户的数据进行分别存储。其中root用户的数据就是存储在 /root目录下的,而其他普通用户的数据存储在 /home/对应用户名的目录下。比如我的普通用户的用户名叫做chenxuan,那么存储它的数据的目录就是 /home/chenxuan
  3. 显示软链接的实际路径在这里插入图片描述
            首先我们可以看到a是一个指向text1/text1_! 的软链接,进入a目录后使用无选项pwd命令,发现显示出来的是 /TEXT1/a,显然是软链接的路径。使用pwd -P后发现显示出软链接所指向的链接 /TEXT1/text1/text1_1,也就是实际路径。



创建新目录(mkdir)

        文章到这里,我们已经大致的学会了看,但我们的目标是不光要看,还要着手创建,创建属于自己的目录树!
        假如说文件是一个个人,目录显然就是房子了。那么从现在开始,我们开始学习如何创建房子,这时候就要用到mkdir命令了。


下面是命令格式以及常用的选项:

[root@hostname ~]#mkdir [选项] [参数]

常用的选项:
-m:创建目录的同时配置目录的权限。
-p:递归建立目录,即可以直接建立一串目录,比如TEXT1/text1/text1_!
-v:创建目录成功后显示创建信息.

例子(为了方便理解,添加-p选项的命令会添加-v选项)(除-p选项外每个选项的例子都会添加无选项命令的结果做对照):

  1. 无选项和添加了-v选项创建目录
    在这里插入图片描述
            首先用ls -l显示TEXT1下的所有文件、目录及他们的属性,然后用无选项mkdir创建text2目录,再用ls -l显示文件、目录,可以看到text2目录已经被成功创建。
            接着用mkdir -v创建目录text3,可以发现执行后显示了提示:created directory ‘text3’,再用ls -l显示出文件,目录中包含我们想要创建的text3目录,成功。
  2. 无选项及添加-m选项(注意观察目录权限)
    在这里插入图片描述
            首先用无选项mkdir创建目录text2,我们发现其默认权限为drwxr-xr-x.,再用带有-m选项的mkdir创建目录text3,并将其权限设置为777(每个数字都是rwx所代表的数字和,r代表4,w是2,x为1),用ls -l显示发现目录text3的权限为drwxrwxrwx.
  3. -p选项
    在这里插入图片描述



删除空目录(rmdir)

        既然有创建,那么就会有毁灭。在文件管理系统中,删除同创建一样重要。接下来我们就着手删除空目录进行讨论。


下面是命令的格式以及常用的选项::

[root@hostname ~]#rmdir [选项] [参数]

常用的选项:
-p:级联删除
-v:删除后显示提示信息

例子

  1. 无选项rmdir
    在这里插入图片描述
    首先用ls -al显示TEXT1目录下的所有文件,再用rmdir text3命令移除text3目录,再次调用ls -al,发现text3成功删除。
  2. rmdir -p —— 级联删除(为了方便观察,加上了-v选项来显示删除信息).在这里插入图片描述
    -p选项的作用是级联删除空目录,比如说这个例子里面text3_1里面只有text3_1_1目录,删除text3_1_!rmdir -p命令就会将上一层级联删除。但是如果删除text3_1_1后text3_1里面还具有其他文件或者目录text3_1就不会被删除.。在这里插入图片描述
  3. -v选项
    在这里插入图片描述



复制文件或目录(cp)

         复制在文件管理中同样重要,接下来就说一下cp命令

命令格式以及常用选项:

{root@hostname ~}#cp [选项] [参数...]

常用的选项:
-d:复制软连接。不是复制链接所指向的文件,而是链接本身。
-f:强制运行,不显示提示信息。
-l:复制硬链接,而不是目录本身。
-p:连同文件属性一起复制过去。
-r:递归持续复制,用于复制目录。
-s:复制成为软链接文件,即捷径文件。
-a:相当于-pdr。
-i:若是目标已存在,覆盖时会提示。默认存在于cp命令中。

例子:

  1. 无参数(不复制属性)在这里插入图片描述
    测试无选项cp是否复制属性: 先用ls -al显示所有文件以及属性,可见hello.txt的属性为rw-rw-rw-.,用cp命令复制为hello1.txt,发现属性为rw-r–r--.,所以可知无选项cp命令只复制文件本身,不复制文件属性
    在这里插入图片描述
    测试无选项cp是否可以复制软链接: 先用ls -l显示所有文件及目录,可以发现link1是一个软链接(符号链接),然后我们动用无选项cp命令复制link1为link2,再用ls -l显示所有文件及目录,可以发现复制后并不是软链接,而是一个文件。也就是说动用无选项cp命令复制软链接复制的并不是链接本身,而是链接所指向的文件
    在这里插入图片描述
    测试无选项cp是否能复制硬链接: 依旧是先用ls -l显示所有文件及目录,里面的hardlink1是我创建的一个hello.txt的硬链接。我们动用无选项cp来复制hardlink1hardlink2
    可以看到的是复制成功,但是看起来和普通文件没有区别。那么怎么才能知道他是一个硬链接亦或仅仅是一个普通的文件呢?那么首先说一下硬链接的一个特点,大家注意看原文件以及他的硬链接的属性。会发现源文件和硬链接的权限一模一样。而且如果这时候改变原文件的权限,硬链接的权限会相应的进行改变。所以我们可以用这个特点判断一个文件是否为硬链接。在这里插入图片描述
    我们修改一下hello.txt的权限为777也就是rwxrwxrwx,可以发现hardlink1的权限相应的改变了,而复制后的hardlink2的权限并没有改变。所以判定无选项的cp不能复制硬链接本身,而是复制硬链接所指向的原文件。
  2. cp -d——复制软链接
    在这里插入图片描述
    首先用ls -l显示非隐藏文件及目录,可以看到link1是指向hello.txt的软链接,运用cp -d复制link1link2ls -l显示所有非隐藏文件及目录,可以看到link2为指向hello.txt的软链接。
  3. cp -f —— 强置执行,不显示覆盖提示信息在这里插入图片描述
    先用ls -l显示文件及目录,再用 \cp -f命令强置复制并覆盖a.txt。为什么要用 \cp而不是cp呢?因为cp命令是有别名 (alias cp=‘cp -i’) 的,也就是说 cp默认具有-i选项 ,所以单单用 cp -f 的话 -f选项是不会起作用的。
  4. cp -l——复制硬链接
    在这里插入图片描述
    依旧是用ls -l显示文件及目录,hardlink1是一个指向hello.txt的硬链接,动用 cp -l直接复制hardlink1hardlink2,然后改变原文件的权限,再用ls -l显示文件及目录,可以发现hardlink2同原文件一样改变权限,可以判断hardlink2为硬链接
  5. cp -p——连同属性一起复制
    在这里插入图片描述
    首先用ls -l显示文件及目录,可以看到hello.txt的权限为rw-rw-rw-.,用cp -p复制hello.txthello1.txt,再次用ls -l显示文件及目录,可以看到hello1.txt的权限为rw-rw-rw-.
  6. cp -r ——递归持续复制,用于目录的复制行为
    在这里插入图片描述
    ls -l显示文件及目录,用cp -r复制目录text1text3。再用ls -l查看。
  7. cp -s——复制为符号连接档(即软链接)
    在这里插入图片描述
    ls -l显示文件及目录,再用cp -s复制hello.txt 为软链接link2 ,再用ls -l显示文件及目录进行查看。
  8. cp -a——递归复制目录软链接以及他们的属性,效果同cp -pdr在这里插入图片描述



移除文件或目录(rm)

        之前我们了解过了如何移除空目录,但是想要用rmdir一下删除目录以及其内的文件显然是不可能的。那么我们该如何才能删除文件或者非空目录呢?接下来我们来了解一下rm命令
命令格式以及常用选项:

[root@hostname ~]#rm [选项] [参数]

常用的选项:
-f:强制删除,无提示信息。
-r:递归删除,用于删除目录。

例子:

1.无选项rm
在这里插入图片描述
首先用ls -l显示文件及目录,用rm命令删除a.txt,再用ls -l显示文件及目录,可以发现a.txt已经被删除。
2. rm -f ——强置删除,不提示信息
在这里插入图片描述
ls -l显示文件及目录,用rm -f命令删除hello1.txt,可以发现删除时并没有确认删除信息,再用ls -l显示文件及目录,发现hello1.txt已经被成功删除。
3. rm -r —— 递归删除,删除目录在这里插入图片描述
ls -l显示文件及目录,text3是一个非空目录,用rm -r进行删除。



移动文件与目录,或修改名称(mv)

        有了复制,就应该有剪切。接下来学的就是剪切操作——mv移动文件与目录

命令格式与常用选项:

[root@hostname ~]#mv [选项] [参数]

常用的选项:
-f:强制执行,若目标文件存在则不询问直接覆盖。
-u:若目标已经存在,进行判断时间,如果目标文件较新则不覆盖。

例子:

  1. 无选项mv
    移动:在这里插入图片描述
    text1中的hello.c移动到TEXT1目录下。
    在这里插入图片描述
    如果目标文件已经存在会提示是否进行覆盖
    改名:
    在这里插入图片描述
    hello.txt名字修改成rename.txt
  2. mv -f —— 强制覆盖
    在这里插入图片描述
    首先用ls -l显示文件及目录,用mv -f移动hello.chel.c进行强制覆盖。会发现没有提示信息。再次用ls -l显示文件及目录,移动成功。
  3. mv -u——按照时间判断是否覆盖在这里插入图片描述
    首先用ls -l显示文件及目录,观察创建时间,可以发现hello.c创建时间新于hel.c,用mv -u移动hel.chello.c。经判断hello.c创建时间新于hel.c,覆盖失败。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值