Linux文件与目录管理的介绍(附代码)

本篇文章给大家带来的内容是关于Linux文件与目录管理的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

基础命令

基本命令

pwd命令
作用:显示当前工作目录的名称
选项:-p 显示链接的真实路径

cd命令
作用:切换当前工作目录
常用:

cd 切换到根目录cd – 返回到前一个工作目录cd .. 切换工作目录到当前目录的上一级目录cd /usr/local 切换工作目录到/usr/local

ls命令
作用:显示目录与文件信息
常用选项:

-a 显示所有文件,包括以.开头的隐藏文件-h 人性化显示容量信息-l 长格式显示文档的详细信息-u 显示文件或目录最后被访问的时间-t 以修改时间排序,ls默认按文件名称排序-R 递归显示子目录

touch命令
作用:创建文件或者修改文件时间
如:$ touch hello.txt
如果hello.txt文件不存在,则创建文件,如果存在,则修改hello.txt所有的时间为当前系统的时间。

mkdir命令
作用:创建目录
选项:-p 创建多级目录
如:$ mkdir -p /tmp/data/mysql
假如/tmp/data目录不存在,就会自动创建/data目录再创建mysql目录。

cp命令
作用:复制文件或者目录
选项:

-r 递归,复制子文件与子目录(复制目录必加)-a 复制时保留源文档的所有属性

rm命令
作用:删除文件或者目录
选项:

-f 不提示,强制删除-i 删除前,提示是否删除-r 递归删除,删除目录以及目录下的所有内容

需谨慎:rm -rf *

mv命令
作用:移动或者重命名文件或目录
如:

重命名文件$ mv hello.txt hello.doc移动文件到指定目录$ mv hello.txt /usr/local/src移动文件到指定目录并改名$ mv hello.txt /usr/local/src/hello.doc

du命令
作用:计算文件或目录的大小(容量)
选项:

-h 人性化显示容量信息-a 查看所有目录以及文件的容量信息-s 仅显示总容量

查看文件内容命令

cat命令
作用:查看文件内容
选项:

-b 显示行号,空白行不显示行号-n 显示行号,包含空白行

示例:

[root@moli_linux1 ~]$ cat -b hello.txt      1    one:hello world     2    two:hello world[root@moli_linux1 ~]$ cat -n hello.txt      1    one:hello world     2         3    two:hello world

tac命令
作用:倒序查看文件内容(与cat相反)

[root@moli_linux1 ~]$ tac  hello.txt two:hello worldone:hello world

head命令
作用:查看文件头部内容,默认显示前10行。
选项:

-c nK 显示文件前nKB的内容-n 显示文件前n行内容

示例:head -5 /etc/passwd 显示/etc/passwd文件前5行内容。

tail命令
作用:查看文件尾部内容,默认显示末尾10行。
选项:

-c nK 显示文件前nKB的内容-n 显示文件前n行内容

示例:tail -5 /etc/passwd 显示/etc/passwd文件后5行内容。

less命令
作用:分页查看文件内容
说明:按空格键查看下一页,q键退出查看,ctrl b向上翻页,ctrl f向下翻页,g跳到第一行,G跳到最后一行。
示例:less  /var/log/jenkins/jenkins.log

more命令
作用:分页查看文件内容
说明:按空格键查看下一页,q键退出查看,ctrl b向上翻页,ctrl f向下翻页
示例:`more  /var/log/jenkins/jenkins.log
`

wc命令
作用:显示文件行,单词与字节统计信息
选项:

-c 显示文件字节统计信息-l 显示文件行数统计信息-w 显示文件单词统计信息

示例:

[root@moli_linux1 ~]$ wc hello.txt  3  4 33 hello.txt[root@moli_linux1 ~]$ wc -c hello.txt 33 hello.txt[root@moli_linux1 ~]$ wc -l hello.txt 3 hello.txt[root@moli_linux1 ~]$ wc -w hello.txt 4 hello.txt

权限管理

Linux下文件的权限一般包括读、写、可执行三种控制,可用字母或者数字表示。

字母表示为为r、w、x数字表示为4、2、1

也就是r=4,w=2,x=1。
我们可以使用ls -l命令查看文件或者目录的权限。

[root@moli_linux1 ~]$ ls -l总用量 8drwxr-xr-x. 3 root root   23 6月   6 2018 192.168.229-rw-------. 1 root root 1538 5月  19 2018 anaconda-ks.cfgdrwxr-xr-x. 3 root root   18 7月  27 2018 git_data-rw-r--r--  1 root root   33 3月   5 13:37 hello.txtdrwxr-xr-x. 4 root root   33 7月   4 2018 serverdrwxr-xr-x  4 root root   68 10月  2 15:48 shell-100drwxr-xr-x  4 root root   67 11月 16 21:29 test-find

其中第一列的第一个字符表示文件类型,之后的9个字符就是权限了,而第一列最后一个字符有的是一个点.,有的没有,这个点代表这个文件受selinux所限制。
以上面的drwxr-xr-x.为例:

第一个字符是字母d,表示文件类型是目录,常见的有:字母l代表链接文件、字母b或者c代表设备、字母s代表socket文件等。第二个字符到第九个字符代表权限。三位一组分别为所有者(a)权限,所属组(g)权限、其他用户(o)权限。这个文件的权限为所有者权限可读可写可执行、所属组权限为可读可执行不可写、其他用户权限可执行不可读不可写。最后一个字符是点,表示受selinux限制。

关于权限的表示可看下表:

数字 字母 文件 目录

4r查看文件内容查看目录下的文件与目录名称2w修改文件内容在目录下增、删、改文件与目录名称1x可执行,一般为程序或者脚本可用cd命令进入目录

Linux默认权限

文件默认权限

文件默认最大权限为644 (rw-r–r–)一般会给文件644权限

目录默认权限

目录默认最大权限为755(rwxr-xr-x)一般会给目录755权限

chmod命令

作用:修改文件或者目录的权限
格式:chmod [选项] 权限 文件或目录
选项:-R 递归将权限应用于所有的子目录与子文件
其中权限的表示可用数字或者字母,也可以用a(所有人)、u(代表所有者)、g(所属组)、o(其他用户)。
示例:
环境准备,test目录下有3个文件和1个目录test-1,子目录test-1里有文件hello.txt。各个文件目录权限如下:

[root@moli_linux1 test]$ ll -R.:总用量 0-rw-r--r-- 1 root root  0 3月   7 14:43 1.txt-rw-r--r-- 1 root root  0 3月   7 14:43 2.txt-rw-r--r-- 1 root root  0 3月   7 14:43 3.txtdrwxr-xr-x 2 root root 23 3月   7 14:44 test-1./test-1:总用量 0-rw-r--r-- 1 root root 0 3月   7 14:44 hello.txt[root@moli_linux1 test]$ tree.├── 1.txt├── 2.txt├── 3.txt└── test-1    └── hello.txt1 directory, 4 files

修改1.txt文件的权限为600

$ chmod 600 1.txt 或者 $ chmod u=rwx,g-r,o-r 1.txt

对1.txt文件的所有人权限添加可执行权限

$ chmod a+x 1.txt 或者 $ chmod u+x,g+x,o+x 1.txt

对test目录下的所有文件设置所有人可读可写

$ chmod -R a=rw test

建议:修改权限能用数字就用数字…

chown命令

作用:修改文件或目录的所有者与所属组
格式:chown [选项] [所有者]:[所属组] 文件名/目录名
选项:-R 递归将权限应用于所有子目录与子文件
使用ls -l命令查看文件或目录的时候,第三列和第四列就是文件或目录的所有者与所属组。

[root@moli_linux1 test]$ ls -l 1.txt -rwx------ 1 root root 0 3月   7 14:43 1.txt

比如上面1.txt文件的所有者是root用户,所属组是root组。

修改1.txt文件的所有者为mori,所属组为mail

[root@moli_linux1 test]$ chown mori:mail 1.txt [root@moli_linux1 test]$ ll 1.txt -rwx------ 1 mori mail 0 3月   7 14:43 1.txt# 所有者与所属组已改变

umask

Linux默认权限控制,也就是说umask的作用是设置用户创建文件或者目录时,这个文件或目录的默认权限。
在Linux终端输入umask时,出现数字0022这个就是默认的umask值。

[root@moli_linux1 test]$ umask0022

修改umask    
我们可以通过输入命令$ umask 0032修改系统默认的umask值

[root@moli_linux1 test]$ umask 0032[root@moli_linux1 test]$ umask0032

umask反掩码计算
当umask掩码是偶数的时候,默认权限=最大权限-umask值

文件最大权限是666,因此创建文件的默认权限是666-022=644目录最大权限是777,因此创建目录的默认权限是777-022=755

当umask掩码是奇数的时候,计算文件的默认权限的时候,要在奇数位加1
如:umask=032

对于文件:666-032=634,然后奇数位+1,634+010=644对于目录:777-032=745,然后奇数位+1,745+010=755

文件系统权限

设置文件系统权限命令chattr

chattr +a(append) 只能追加chattr +i 无敌,不能进行任何操作

查看文件系统权限命令lsattr
示例:

[root@moli_linux1 test]$ ll 2.txt -rw-r--r-- 1 root root 0 3月   7 14:43 2.txt[root@moli_linux1 test]$ chattr +a 2.txt # 添加隐藏权限[root@moli_linux1 test]$ echo "hello world" > 2.txt # 不允许重定向-bash: 2.txt: 不允许的操作[root@moli_linux1 test]$ echo "hello world" >> 2.txt # 允许追加重定向[root@moli_linux1 test]$ mv 2.txt helloworld.txt # 不允许移动 mv: 无法将"2.txt" 移动至"helloworld.txt": 不允许的操作[root@moli_linux1 test]$ rm -f 2.txt # 不允许删除rm: 无法删除"2.txt": 不允许的操作[root@moli_linux1 test]$ lsattr 2.txt  #查看隐藏权限-----a---------- 2.txt[root@moli_linux1 test]# chattr -a 2.txt # 去除隐藏权限 [root@moli_linux1 test]$ lsattr 2.txt  # 没有隐藏权限---------------- 2.txt[root@moli_linux1 test]$ rm -f 2.txt # 再次删除,成功

链接文件

Linux中链接文件分为软连接和硬链接。软连接可以跨分区,但源文件不可删除。硬链接不可以跨分区,但可以将源文件删除。
创建软硬链接使用命令ln 
创建软连接:ln -s 文件名 链接名
创建硬链接:ln 文件名 链接名

软连接

软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。
因此软链接的创建与使用没有类似硬链接的诸多限制:

软链接有自己的文件属性及权限等;可对不存在的文件或目录创建软链接;软链接可交叉文件系统;即,可跨分区。软链接可对文件或目录创建;创建软链接时,链接计数 i_nlink 不会增加;删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling
 link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

示例:

[root@moli_linux1 ~]$ ln -s /test/hello.txt /tmp/hi.txt        #创建文件软连接[root@moli_linux1 ~]$ ln -s /test/ /var/test                #创建目录软连接[root@moli_linux1 ~]$ rm /test/hello.txt;cat /tmp/hi.txt    #删除源文件后,链接无法使用

硬链接

由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:

文件有相同的 inode 及 data block;只能对已存在的文件进行创建;不能交叉文件系统进行硬链接的创建;不能对目录进行创建,只可对文件创建;删除一个硬链接文件并不影响其他有相同 inode 号的文件。

示例:

[root@moli_linux1 ~]$ ln /test/hello.txt /tmp/hi.txt    #创建文件硬链接[root@moli_linux1 ~]$ rm /test/hello.txt             #删除源文件后依旧可用

以上就是Linux文件与目录管理的介绍(附代码)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/175747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
mysql自增id不连续怎么办
上一篇 2026年8月31日 13:49:31
激情“苏超”遇上电信5G-A!江苏电信助力绿茵赛场“快”出新高度
下一篇 2026年8月31日 13:53:20

相关推荐

  • 如何在Linux命令行中使用alias命令提高效率

    alias命令可创建命令别名,提升Linux操作效率。例如alias ll=’ls -la’,将常用命令简化,通过编辑~/.bashrc或~/.zshrc文件永久保存,使用unalias删除,实现个性化高效操作。 在Linux命令行中,alias 是一个非常实用的功能,可以帮…

    2026年9月10日
    000
  • 在Java中如何配置环境以支持JSP运行

    必须搭建Web服务器环境并配置JDK与Servlet容器。首先安装JDK 8+,设置JAVA_HOME和PATH变量,验证java -version;再下载兼容的Tomcat 9+,解压后配置CATALINA_HOME,启动bin目录下的startup脚本,访问localhost:8080确认运行;…

    2026年9月10日
    000
  • Linux apt-key与rpm –import命令详解

    答案:apt-key和rpm –import用于导入GPG密钥以验证软件包来源,前者适用于Debian系但已弃用,推荐将密钥文件置于/usr/share/keyrings/并显式引用;后者用于Red Hat系,通过rpm –import导入密钥至RPM密钥环,两者均需谨慎操作…

    2026年9月10日
    000
  • VSCode搜索:全局查找与替换秘籍

    掌握VSCode全局查找替换技巧可大幅提升效率。使用Ctrl+Shift+F(Cmd+Shift+F)进行项目级搜索,Ctrl+H调出替换面板;通过选区限制、正则表达式(如s+$清除行尾空格、d+替换数字加符号)实现精准修改;启用“区分大小写”和“全字匹配”避免误改;替换前务必预览上下文,确保修改安…

    2026年9月10日
    300
  • Linux命令行中top与htop命令的对比与使用

    top和htop均为Linux进程监控工具,htop界面更友好、功能更丰富,支持鼠标操作与资源条状图,适合可视化需求;top则稳定兼容,适用于基础环境。 top 和 htop 都是 Linux 系统中用于实时监控系统进程和资源使用情况的命令行工具。它们能显示 CPU、内存、交换分区等关键指标,帮助用…

    2026年9月10日
    000
  • 如何快速掌握Linux命令行基础?

    掌握Linux命令行需从基础命令和核心概念入手,建立实践导向的学习路径。首先搭建练习环境如虚拟机或WSL,重点掌握文件系统操作(ls、cd、mkdir、rm、cp、mv)、文件内容查看(cat、less、head、tail)、文本搜索(grep)及权限管理(chmod、chown)。理解管道(|)和…

    2026年9月10日
    100
  • Linux ss -s命令详解

    ss -s命令提供系统网络套接字状态的汇总摘要,显示TCP、UDP、RAW、UNIX等类型套接字在不同状态下的数量,帮助快速诊断网络负载与资源使用情况。其输出包括Total(总套接字数)、TCP各状态连接数(如estab为已建立连接,timewait为等待关闭连接),以及监听、活跃等详细统计,适用于…

    2026年9月10日
    000
  • Linux命令行中chmod命令的详解与实例

    chmod命令用于修改文件或目录权限,保障Linux系统安全;其语法为chmod [选项] 模式 文件名,常用选项-R递归修改;权限表示分符号模式(u/g/o/a + – = r/w/x)和数字模式(r=4, w=2, x=1);如chmod u+x file.txt、chmod 755…

    2026年9月10日
    000
  • VSCode插件:Docker扩展使用指南

    VSCode 的 Docker 扩展是开发和管理容器化应用的得力工具。安装后,你可以直接在编辑器中构建镜像、运行容器、查看日志、管理网络与卷,无需频繁切换终端。下面介绍核心功能和实用操作。 安装与环境准备 确保系统已安装 Docker 并正常运行。Windows 和 macOS 用户需启用 Dock…

    2026年9月10日
    100
  • Linux如何配置QoS流量控制

    QoS在Linux网络中的核心作用是通过精细化流量管理,确保关键应用在网络拥堵时获得优先带宽和低延迟。它能解决带宽饥饿、缓冲膨胀、关键业务中断等问题,提升用户体验与资源分配公平性。 Linux上的QoS流量控制,简单来说,就是通过精细化管理网络数据包的排队、转发,来确保关键应用或服务在网络拥堵时依然…

    2026年9月10日
    000
  • Linux中正则表达式和字符串的查询、替换(tr/diff/wc/find)

    Linux中正则表达式和字符串的查询、替换(tr/diff/wc/find)Linux中正则表达式和字符串的查询、替换(tr/diff/wc/find)Linux中正则表达式和字符串的查询、替换(tr/diff/wc/find)Linux中正则表达式和字符串的查询、替换(tr/diff/wc/find)

    在linux中,正则表达式和字符串的查询、替换工具如tr、diff、wc和find等,是处理文本和文件的强大工具。本文将详细介绍这些工具的使用方法和正则表达式的基本概念。 正则表达式 正则表达式(Regular Expression),简称regex、regexp或RE,是一种用于描述和匹配符合特定…

    2026年9月10日 用户投稿
    300
  • Linux如何设置定时任务_Linux定时任务配置的完整指南

    掌握Linux定时任务需理解crontab概念,使用crontab -e编辑、-l查看、-r删除任务;2. crontab时间格式为“分 时 日 月 周 命令”,如“0 2 * /backup.sh”表示每天2点执行;3. 编辑任务时用绝对路径并设置环境变量,避免输出可重定向到/dev/null;4…

    2026年9月10日
    200
  • thinkphp使用composer安装时报错如何处理

    答案:安装ThinkPHP报错多因PHP版本、网络或权限问题。1. 确保PHP≥7.2并启用pdo、mbstring等扩展;2. 更换阿里云镜像解决下载超时;3. 执行composer clear-cache清除缓存;4. 检查目录权限与磁盘空间;5. 使用正确命令如composer create-…

    2026年9月10日
    100
  • windows怎么安装可选功能_Windows可选功能安装教程

    1、可通过设置界面、PowerShell、控制面板或离线方式安装Windows可选功能。2、设置中选择“可选功能”添加如.NET Framework等模块。3、PowerShell命令可查询并安装WSL等功能,适合批量操作。4、运行optionalfeatures打开传统Windows功能窗口启用H…

    2026年9月10日
    100
  • VSCode远程:容器开发环境搭建

    使用VSCode进行远程容器开发需安装Docker和Remote – Containers扩展,1. 在项目根目录创建.devcontainer文件夹并配置devcontainer.json与Dockerfile;2. 点击右下角“”图标选择Reopen in Container,VSC…

    2026年9月10日
    200
  • Linux命令行中ping命令的使用方法

    ping命令用于测试网络连通性,通过发送ICMP回显请求并接收应答来检测目标主机的响应时间和网络质量。基本语法为“ping [选项] 主机名或IP地址”,如“ping google.com”或“ping 8.8.8.8”。常用选项包括:-c指定发送包次数,如“ping -c 4 google.com…

    2026年9月10日
    100
  • Linux中如何查看系统版本_Linux系统版本查看的多种方法

    使用lsb_release -a查看发行版信息;2. 查看/etc/os-release获取标准化版本数据;3. 运行hostnamectl显示系统及内核版本;4. 检查/etc/issue或/etc/redhat-release等发行版特定文件;5. 执行uname -r获取内核版本。推荐优先使用…

    2026年9月10日
    100
  • LINUX怎么禁用一个用户账号_LINUX用户禁用与启用方法

    使用passwd命令锁定用户密码可禁用登录,-l参数锁定,-u参数解锁;2. 通过usermod -s设置/sbin/nologin禁止Shell登录,恢复时改回/bin/bash;3. 用usermod -e设过期日期禁用账户,清空过期时间可恢复;4. passwd -S查看状态,LK表示已锁定。…

    2026年9月10日
    200
  • 如何在Linux中调试和优化进程性能?

    首先使用top和htop监控系统负载与资源占用,按P或M排序定位高消耗进程;接着用strace跟踪系统调用,结合-tt和-T分析阻塞与耗时操作;再通过perf record与report剖析热点函数,利用perf stat获取性能指标;最后用nice、ionice调整优先级,结合cgroups和ul…

    2026年9月10日
    200
  • VSCode远程开发:跨平台协作实战

    答案:VSCode远程开发通过Remote-SSH、Containers和WSL实现跨平台一致体验。团队共用标准化远程环境,统一依赖与配置,新成员快速接入,避免“在我机器上能跑”问题,前端可在Windows/macOS调试Linux后端服务,提升协作效率。 在现代软件开发中,团队成员往往使用不同操作…

    2026年9月10日
    200

发表回复

登录后才能评论
关注微信