首页 > 系统相关 >Linux命令——文件管理

Linux命令——文件管理

时间:2024-06-16 16:00:22浏览次数:24  
标签:文件 文件名 目录 命令 Linux 权限 链接

目录

1. cd 命令

进入家目录

在两个目录之间切换

2. ls 命令

显示所有文件:

显示文件详细信息

文件大小单位显示

显示目录后缀

3. 创建删除文件

创建文件

删除文件

4. 创建删除目录/文件

创建单层目录

创建多层目录

删除目录

5. cp 命令

拷贝文件

拷贝目录

6. mv命令

文件的移动

文件改名

文件覆盖

7. 查看文件内容

cat 

more

less

head

tail

8. 链接的创建

软连接

硬链接

9. 文件属性

修改文件文件权限

修改文件所有者

修改文件所属组

10. 其他命令

tree

pwd

which

重定向命令


1. cd 命令

在Linux终端中如果想要进行工作路径的切换, 需要使用cd命令。在进行目录的切换的时候, 我们可以使用相对路径也可以使用绝对路径。

  • 进入家目录

 cd

 cd ~

 cd /home/用户名

每个用户都有一个属于自己的家目录,比如:

aa是一个普通用户,家目录为:/home/aa;

bb是一个普通用户,家目录为:/home/bb;

root是一个管理员用户,家目录为:/root

  • 在两个目录之间切换

cd -

2. ls 命令

ls 就是 list, 打印指定的文件信息, 如果是目录, 显示对应目录中有哪些子文件。

ls [args]                        # 查看当前目录
ls [args] 目录名            # 查看指定目录
ls [args] 文件名            # 查看某个文件的信息

如下图所示:

  • 显示所有文件:

 ls  -a              

给 ls添加 -a参数(就是 all 的意思)就可以显示指定目录中是所有文件了, 因为默认情况下具有隐藏属性的文件是不会显示出来的。那么在Linux中什么样是文件才能被隐藏呢?起始很简单只需要在文件名前边加一个点(.)文件就具有隐藏属性了, 例如: .a.txt 

如下图所示:

  • 显示文件详细信息

ls -l (可以简写为ll

给 ls添加 -l参数(就是 list 的意思)我们就可以看到文件的详细信息了, 里边的信息量还是非常大的, 其中包括: 文件类型,文件所有者对文件的操作权限, 文件所属组用户对文件的操作权限, 其他人对文件的操作权限, 硬链接计数, 文件所有者, 文件所属组, 文件大小, 文件的修改日期, 文件名

如下图所示:

  • 文件大小单位显示

在查看文件大小的时候, 如果文件比较大对应的数组自然也就很大, 我们还需要基于字节进行相关的换算, 不能直观得到我们想要的结果, 如果数学不好, 我们可以使用一个参数 -h

ls -lh

如下图所示:

  • 显示目录后缀

查看文件信息的时候, 除了通过文件类型区分该文件是不是一个目录之外, 还可以通过一个参数 -F在目录名后边显示一个/, 这样就可以直接区分出来了。

ls -lF

如下图所示:

3. 创建删除文件

  • 创建文件

使用touch命令可以创建一个新的空文件, 如果指定的文件是已存在的, 只会更新文件的修改日期, 对内容没有任何影响。

touch 文件名称

  • 删除文件

rm 文件名称

4. 创建删除目录/文件

  • 创建单层目录

mkdir 新目录名字

  • 创建多层目录

mkdir 新目录名字 -p

  • 删除目录

rmdir 目录名          (只能是空目录,不推荐)

rm 目录名 -r           (可以删除多层目录,需指定参数-r

5. cp 命令

cp 就是copy, 拷贝, 使用这个命令可以拷贝文件也可以拷贝目录

  • 拷贝文件

文件不存在得到新文件, 文件存在就覆盖

语法:cp  要拷贝的文件  得到的文件

  • 拷贝目录

目录不存在得到新目录, 存在则该目录被拷贝到存在的目录中

语法:cp  要拷贝的目录  得到的目录  -r (需要指定参数-r

6. mv命令

mv 就是move, 这个Linux命令既能移动文件所在目录也可以给文件改名。

  • 文件的移动

mv  要移动的文件/目录  目录

  • 文件改名

mv  要改名的文件/目录  新名字(原来是不存在的,这点很重要)

  • 文件覆盖

mv  存在的文件A  存在的文件B 

7. 查看文件内容

如果想要查看文件内容方式有很多, 最常用的是vim, 下面介绍一下vim以外的一些的一些方式:

  • cat 

该命令可以将文件内容显示到终端, 由于终端是有缓存的, 因此能显示的字节数也是受限制的。 如果文件太大数据就不能完全显示出来了,因此该命令适合查看比较小的文件内容。

cat  文件名

  • more

该命令比cat要高级一点, 我们可以以翻屏的方式查看文件中的内容,使用方式如下:

语法:more 文件名
快捷键如下:
回车: 显示下一行
空格: 向下滚动一屏
b: 返回上一屏
q: 退出more

  • less

该命令和more命令差不多, 我们可以以翻屏的方式查看文件中的内容,使用方式如下:

语法:less 文件名
快捷键如下:
b: 向上翻页
空格: 向后翻页
回车: 显示下一行
上下键: 上下滚动
q:退出

使用该命令可以查看文件头部的若干行信息, 使用方式如下:

head 文件名        (默认显示文件的前10行)
head -行数 文件名(指定显示头部的前多少行)

  • tail

使用该命令可以查看文件尾部的若干行信息, 使用方式如下:

tail 文件名        ( 默认显示文件的后10行)
tail -行数 文件名        (指定显示尾部的最后多少行)

8. 链接的创建

链接分两种类型: 软连接和硬链接。

软连接相当于windows中的快捷方式

硬链接计数是一个整数,如果这个数为N(N>=1),就说明在一个或者多个目录下一共有N个文件, 但是这N个文件并不占用多块磁盘空间, 他们使用的是同一块, 如果通过其中一个文件修改了磁盘数据, 那么其他文件中的内容也就变了。每当我们给给磁盘文件创建一个硬链接(使用 ln),磁盘上就会出现一个新的文件名,硬链接计数加1,但是这新文件并不占用任何的磁盘空间,文件名还是映射到原来的磁盘地址上。

  • 软连接

ln -s 源文件路径 软链接文件的名字(可以带路径)

如下图所示,采用相对路径建立软连接:

示例是给app文件建立软连接app.lnk,建立软连接后app.lnk相当于app的快捷方式,所以运行结果和app都一样;但是把app.lnk移动到其它目录后再运行则会报错,如下图所示:

原因是建立软连接时采用的是相对路径,移动链接文件后找不到对应的源文件,所以解决方法是建立软链接时采用绝对路径,如下图所示,app.lnk2采用绝对路径建立软链接,移动到其它目录后人可正常运行。

总结:在创建软链接的时候, 命令中的源文件路径建议使用绝对路径, 这样才能保证创建出的软链接文件在任意目录中移动都可以访问到链接的那个源文件。

  • 硬链接

ln 源文件 硬链接文件的名字(可以带路径)

如下图所示,main.c建立硬链接m1后,硬链接计数由1变成2,两个文件内容相同,只是名称不同,改变其中一个文件内容,另外一个文件内容也会随之改变;

硬链接和软链接不同, 它是通话文件名直接找对应的硬盘地址, 而不是基于路径, 因此源文件使用相对路径即可, 无需为其制定绝对路径。

目录是不允许创建硬链接的。

9. 文件属性

文件属性相关的命令主要是修改用户对文件的操作权限, 文件所有者, 文件所属组的相关信息。

  • 修改文件文件权限

文件权限是针对文件所有者, 文件所属组用户, 其他人这三类人而言的, 对应的操作指令是chmod。设置方式也有两种,分别为文字设定法和数字设定法。

文字设定法是通过一些关键字r, w, x, -来描述用户对文件的操作权限。

数字设定法是通过一些数字 0, 1, 2, 34, 5, 6, 7 来描述用户对文件的操作权限。

  • 1、文字设定法

语法:chmod [u/g/o/a] [+/-/= ] [r/w/x/-] 文件名

解释:

参数1:u(user):文件所有者;

             g(group):文件所属组;

             o(other):其他人;

             a(all):以上三类人 u + g + o

参数2:+:添加权限

             -:去除权限

             =:权限覆盖

参数3:r(read):读

             w(write):写

             x(execute):执行

             -:没有权限

如下图所示,给hello文件的所有者用户添加可执行权限:

如下图所示,先把hello文件的文件所有者、所属组用户、其他人添加可写可执行权限,再去除所属组用户、其他人的可写可执行权限:

  • 2、数字设定法

语法:chmod [+/-/= ] [4/2/1/0] 文件名

解释:

参数1:+:添加权限

             -:去除权限

             =:权限覆盖

参数2:4:read 读

             2:write 写

             1:execute 执行

             0:没有权限

如下图所示,给hello文件的文件所属组用户添加可写、可执行权限,给其他人添加可执行权限:

如下图所示,去除hello文件的文件所有者可执行权限、文件所属组用户的可写可执行权限、其他人的可执行权限;

如下图所示,也可以直接通过设置数字(不写加减号),来修改文件权限:

  • 修改文件所有者

默认情况下, 文件是通过哪个用户创建出来的, 就属于哪个用户, 这个用户属于哪个组, 文件就属于哪个组。如果有特殊需求,可以修改文件所有者,对应的操作命令是chown。因为修改文件所有者就跨用户操作, 普通用户没有这个权限, 需要借助管理员权限才能完成该操作。

普通用户借助管理员权限执行某些shell命令, 需要在命令前加关键字sudo, 但是普通用户默认是没有使用 sudo的资格的, 需要修改 /etc/sudoers 文件 。

语法1:只修改所有者        sudo chown 新的所有者 文件名

语法2:同时修改所有者和所属组        sudo chown 新的所有者:新的组名 文件名

示例如下:

  • 修改文件所属组

普通用户没有修改文件所属组的权限, 如果需要修改需要借助管理员权限才能完成,需要使用的命令是chgrp。当然了这个属性的修改也可以使用chown命令来完成。

sudo chgrp 新的组 文件名

示例如下:

10. 其他命令

  • tree

该命令的作用是以树状结构显示目录, tree工具默认是没有的, 需要手动安装, 系统版本不同安装方式也不尽相同:

ubuntu:sudo apt install tree
centos:sudo yum install tree
如果是基于管理员用户安装软件,不需要加sudo。该命令有一个常用参数 -L, 即 (layer) 显示目录的层数。

tree [-L n]                    查看当前目录的结构, n为显示的目录层数
tree 目录名  [-L n]       查看指定目录的结构, n为显示的目录层数

  • pwd

pwd命令用户当前所在的工作目录, 没有参数, 直接执行该命令即可。

  • which

which命令可以查看要执行的命令所在的实际路径, 命令解析器工作的时候也会搜索这个目录。需要注意的是该命令只能查看非内建的shell指令所在的实际路径, 有些命令是直接写到内核中的, 无法查看。

我们使用的大部分shell命令都是放在系统的/bin或者/usr/bin目录下:

如下图所示:

  • 重定向命令

关于重定向使用最多的是就是输出重定向, 顾名思义就是修改输出的数据的位置, 通过重定向操作我们可以非常方便的进行文件的复制, 或者文件内容的追加。输出重定向使用的不是某个关键字而是符号 >或者>>

>:将文件内容写入到指定文件中, 如果文件中已有数据, 则会使用新数据覆盖原数据
>>:将输出的内容追加到指定的文件尾部

示例如下:

echo命令默认把内容输出到终端,通过>>> 把内容写入到文件

date 命令是把日期写入文件

标签:文件,文件名,目录,命令,Linux,权限,链接
From: https://blog.csdn.net/weixin_51316498/article/details/139710139

相关文章

  • Linux常用命令及或g++(或gcc)编辑器运用
    一.实验内容1.打开VMwareWorkstation虚拟机进入Ubuntu系统,打开终端。练习使用常用的Linux命令,主要包括如下命令:mkdir,rmdir,cd,pwd,ls,clear,cat,rm等。(其中,cat、rm命令请在下面实验内容3完成后再练习。)Linux各命令使用方法可下载ftp中文档《Linux入门常用命令》......
  • Ubuntu server 24 (Linux) 安装部署samba服务器 共享文件目录 windows访问
    1安装sudoaptupdatesudoapt-getinstallsamba#启动服务sudosystemctlrestartsmbd.servicesudosystemctlenablesmbd.service#查看服务2创建用户#创建系统用户sudouseraddtest2#配置用户密码sudosmbpasswd-atest2#smbpasswd:-a添加用户-......
  • git 命令汇总
    git使用注意事项1从别人的仓库clone下来的代码,你要推到你远程仓库,要先把远程仓库的地址,2改成你要推的你的远程的空仓库的地址3或者你直接把别人的代码forked你的仓库里,然后你再从你的仓库里面复制clone地址4到你的本地克隆下来,添加代码后,就可以直接提交了,直接提交......
  • 【批量删除指定后缀的文件】
    文章目录前言一、工具二、代码总结Anaconda安装包前言前段时间在用Python处理遥感影像数据时遇到了一个小问题,同一文件夹下存在一些其他格式的文件(如.over.tif,但是我要处理的是.tif格式的文件),这个可能是在用arcgis操作时生成的,但是如果不管它的话,在用Python代码处理......
  • Qt/C++音视频开发77-获取本地有哪些摄像头名称/ffmpeg命令日志方式
    一、前言上一篇文章讲使用ffmpeg函数接口去获取本地摄像头信息,这种方式只能从ffmpeg5版本开始才具备,那ffmpeg3/4只能干瞪眼?那肯定不行的,必须要想办法打通这个功能,查阅信息发现可以执行命令ffmpeg-fdshow-list_devicestrue-idummy去获取,会通过日志打印出来,这是一个非常好......
  • 用idea导入maven在打包之后在web.xml文件找不到src/main/resources文件夹下的资源(已解
    一、产生原因这其实是因为在导入ssm项目时候src/main/resources下的配置文件打包丢失造成的二、解决办法1、在确定maven包都导入情况下,只有资源文件找不到(ps:不能修改绝对路径,否则项目跑不起来) 2、此时的resources文件夹是普通文件夹3、点击项目配置 4、因为之前他只是......
  • Linux DNS域名解析服务
    DNS域名解析服务BIND域名服务基础DNS系统的作用及类型BIND的安装和控制BIND服务的配置文件使用BIND构建域名服务器构建缓存域名服务器构建主域名服务器构建从域名服务器BIND域名服务基础DNS系统的作用及类型整个Internet大家庭中连接了数以亿计的服务器、个人......
  • U盘文件删除恢复
    U盘里的文件被删该怎么恢复?随着数字化时代的飞速发展,U盘已经成为我们日常存储和传输数据的重要工具。然而,在使用U盘的过程中,不小心删除文件的情况时有发生。面对这种突发状况,许多可能会感到焦虑和无助。不过好在,只要及时地采取恢复措施,想要去解决问题还是蛮轻松的。一、尝试免......
  • 【Linux】fork()函数详解|多进程
    ......
  • 【Git入门和实战】第2课:git中的专有名词和概念解释:仓库、工作目录、暂存区、远程仓库
    本文是git入门到实战系列文章的第2课,主要讲解git中的专有名词和概念,主要有仓库(repository)、工作目录(WorkingDirectory)、暂存区(Stage/Index)、远程仓库(remote)、、提交(commit)、HEAD指针、文件状态、分支(branch)、合并(merge)、标签(tag)、引用(ref)。(文末附练习题,......