Linux目录结构和常用命令大全(文件处理命令)

简介: Linux目录结构和常用命令大全(文件处理命令)

前言:Hello! 我是@每天都要敲代码!目前在和比特蛋哥重温一下Linux基础;毕竟每个大佬讲的课都有一些不同;虽然蛋哥的课程很少,但是干货也挺多的,等跟着蛋哥学习完这些课,就再更新一些我以前所学的知识点!对Linux感兴趣的同学,学完蛋哥的课程可以去学习一下兄弟连讲解的Linux视频;内容更加的丰富多彩!虽然兄弟连前几年已经倒闭了(哈哈哈),但是两位大佬讲的课确实牛!接下来对Linux的更新,我也会把以前自己所学的知识点补充进去!我这里也有鸟叔的Linux《基础篇》和《服务器篇》;感兴趣的小伙伴,也可以私聊我发给你

1. Linux 的目录结构

首先给大家介绍一下Linux目录的结构,我们要有一个大概的了解,毕竟有些系统的配置文件是不能随便删除的。当然对于新手来说还是推荐使用普通用户(有些操作就会权限不够),避免因为操作失误而勿删有些系统文件!


1.1 基本介绍

linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录" / ",然后在此目录下再创建其他的目录。这里记住一句话:在 Linux 世界里,一切皆文件!

b02cb6c368414e8caf3c0db9c15f83fc.png



1.2 Linux具体常用目录结构

❤️/lib


   ⭐️系统开机所需要最基本的动态链接共享库,其作用类似于Windows里的DLL(动态链接库)文件。几乎所有的应用程序都需要用到这些共享库。


❤️/etc [重点]


   ⭐️所有系统管理所需要的配置文件和子目录。如:my.conf,配置静态IP的文件


❤️/user


   ⭐️用户的很多应用程序和文件都放在这个目录下。类似于Windows下的program.files目录


❤️/bin(usr/bin、usr/local/bin)[重点]


   ⭐️是Binary的缩写,这个目录存放着经常使用的命令


❤️/sbin(usr/sbin、usr/local/sbin)


   ⭐️这里存放的是系统管理员使用的系统管理程序


❤️/home [重点]


   ⭐️存放普通用户的主目录,在Linux中的每个用户都有一个自己的目录,一般该目录一用户的账号名命名


❤️/root  [重点]


   ⭐️该目录为系统管理员,超级权限者的用户目录


❤️/boot


   ⭐️存放的启动Linux时使用的一些核心文件,包括一些链接文件和镜像文件


❤️/proc


   ⭐️虚拟目录,是系统内存的映射,访问这个目录来获取系统信息。


❤️/srv


   ⭐️service 的缩写,该目录是存放一些服务启动之后需要提取的数据


❤️/tmp


   ⭐️存放临时文件


❤️/dev


   ⭐️类似于 windows的设备管理器,把所有的硬件用文件的形式存储


❤️/media [重点]


   ⭐️Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。


❤️/mnt [重点]


   ⭐️系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。


❤️/opt


   ⭐️这是给主机额外安装软件所摆放的目录。如安装 ORACLE数据库就可放到该目录下。默认为空。


❤️/usr/local [重点]


   ⭐️这是另个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。


❤️/var [重点]


   ⭐️这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。


❤️/selinux [security-enhanced linux] 类似 360


   ⭐️Selinux是一种安全子系统,它能控制程序只能访同特定文件。


1.3 Linux 目录总结

(1)linux 的目录中有且只有一个根目录 /


(2)linux 的各个目录存放的内容是规划好,不用乱放文件。


(3)linux 是以文件的形式管理我们的设备,因此 linux 系统,一切皆为文件。


2. Linux常用命令

Linux命令有几千个,多而杂,要想全部都掌握基本上是不可能的,更何况有些命令,我们根本用不到!所以只需要先掌握一些常用命令就好了;常用命令也是挺多的,我们按照分类,一点一点学习消化!


2.1 文件处理命令

2.1.1 显示目录文件ls

命令格式 :命令 [-选项] [参数]


例 : ls -la /etc


说明:1)个别命令使用不遵循此格式


          2)当有多个选项时,可以写在一起


          3)简化选项与完整选项-a 等于 --all


❤️命令名称:ls

命令英文原意:list                       命令所在路径:/bin/ls           执行权限:所有用户              


语法:ls  选项[-ald]  [文件或目录]          功能描述:显示目录文件  


-a    显示所有文件,包括隐藏文件


-l     详细信息显示


-d    查看目录属性


⭐️例1:ls -a 显示所有文件,包括隐藏文件


5a74944f8bd345148f00f47b455d3886.png


⭐️例2:ls -l 详细信息显示(也等价于ll)


fae2a1ae82b245cfb75f6586520ebbcc.png


⭐️例3:ll -d    查看目录属性


bdd7a389fecc49d8a18d1607e2fb701e.png


解释:小伙伴们不妨执行以下ls,在执行以下ll看看有什么区别?是不是ll显示的信息更加详细?我们就不妨就拿一段解读一下:


71a5b3394ecd40b2acc5ccdfd026e7fb.png


⭐️drwxr-xr-x是什么意思呢?


(1)前面d是文件类型:- 代表是文件、d代表是目录、 l 代表是软链接文件


(2)rwxr-xr-x:r、w、x代表的是权限:可读(4)、可写(2)、可执行(1);


(3)rwxr-xr-x:三个为一组,rwx、r-x、r-x分别对应着:u(所有者)、g(所属组)、o(其他人)


2.1.2 目录处理命令

❤️命令名称:mkdir

命令英文原意:make directories             命令所在路径:/bin/mkdir        执行权限:所有用户


语法:mkdir -p  [目录名]             功能描述:创建新目录   -p递归创建


⭐️例1:就在根目下先创建一个japan目录,并且在japan目录下,在创建boduo目录


0492f007f7954d34b1a8a1a53ac71d1a.png


我们要先创建boduo目录,必须要先创建japan目录;是不是很麻烦?那如果我们加上参数-p递归创建呢?


⭐️例2:利用递归创建-p,在根目下先创建一个japan1目录,并且在japan目录下,在创建boduo1目录


7d88ff11e8d84065a2deaacd81d75050.png


补充:tree命令,以树状形式显示指定的路径结构;这个命令需要安装:yum -y install tree


❤️命令名称:cd

命令英文原意:change directory     命令所在路径:shell内置     命令执行权限:所有用户


语法:cd [目录]    功能描述:切换目录


⭐️例1: cd /root/japan1/boduo1/  切换到指定目录


⭐️例2:  cd  ..     回到上一级目录


⭐️例3:  cd(~)   回到主工作目录下        cd /  回到根目录下   cd - 回到上一次操作目录下


⭐️例4:  绝对路径:cd /root/japan1/boduo1/,是唯一的;如果是相对路径呢?假如我们已经在japan1目录下,我们要进入boduo1目录,直接:cd boduo1这就是相对路径,是不唯一的;我们还可以cd ../japan1/boduo1也是可以的!


❤️命令名称:pwd

命令英文原意: print working directory   命令所在路径:/bin/pwd    执行权限:所有用户


语法:pwd     功能描述:显示当前目录


⭐️例1:

f6f49d3406214ec58d8b0e9abe87a678.png



❤️命令名称:rmdir

命令英文原意:remove empty directories   命令所在路径:/bin/rmdir    执行权限:所有用户


语法:rmdir [目录名]     功能描述: 删除空目录


⭐️例1:rmdir /root/japan/boduo


删除我们刚才创建的空目录!


注意:rmdir只能删除空目录,如果目录不为空,就不能删除!怎么办呢?可以先删除目录里的东西,或者利用rm -rf删除也可以,下面会讲!


❤️命令名称:cp

命令英文原意:copy   命令所在路径:/bin/cp     执行权限:所有用户


语法:cp  -rp  [原文件或目录] [目标目录]   功能描述:复制文件或目录


-r   复制目录


-p  保留文件属性


⭐️例1:cp  -r /tmp/japan/cangjing  /root


将目录/tmp/japan/cangjing复制到目录/root下;当然没有的目录自己要提前创建好!


⭐️例2: cp  -rp /tmp/Japan/boduo /tmp/Japan/longze /root


将/tmp/Japan目录下的boduo和longze目录复制到/root下,保持目录属性


❤️命令名称:mv

命令英文原意:move       语法: mv [选项] 源文件或目录 目标文件或目录  


功能: 移动或者改名

常用选项:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!


⭐️例1:mv /tmp/boduo  /root


把boduo文件或者目录,移动root目录下;相当于剪切;如果覆盖已有的文件,默认也会询问是否覆盖;或者直接加-f 不询问直接覆盖!


❤️命令名称:rm

命令英文原意:remove    命令所在路径:/bin/rm    执行权限:所有用户


语法:rm  -rf   [文件或目录]   功能描述:删除文件


-r  删除目录


-f  强制执行


⭐️例1:rm  /tmp/yum.log


删除文件/tmp/yum.log;什么都不加,只能删除文件


⭐️例2:rm -rf  /tmp/Japan/longze


删除目录/tmp/Japan/longze;加上-rf 文件、目录都能删除


2.1.3 文件处理命令

在这之前先补充一个知识点;如果我们往硬盘创建一个大小为0的文件,有没有占据硬盘空间?


当然是占据的,文件 = 内容+属性(大小、权限等);属性是数据,都要被保存起来!如果我们改内容肯定会使属性改变,最起码大小是变了!如果我们只改权限呢?那就是只改变属性了!


❤️命令名称:touch

命令所在路径:/bin/touch    执行权限:所有用户    语法:touch  [文件名]                


功能描述:创建空文件


⭐️例1: touch  /tmp/zl


在tmp目录下创建zl文件;要想验证:cd /tmp然后ls就能找到zl文件


⭐️例2: 还可以修改文件的时间信息(了解)


举个简单的例子,stat是查看文件的属性!我们查看时间stat 111;就可以看到里面的Access(读取时间)、Modify(对内容的修改时间)、Chang(对属性的修改时间);它们是不一定相等的!但是如果在touch 111,touch原来已经有的文件,在stat 111就会使得时间同步更新!


❤️命令名称:cat

命令所在路径:/bin/cat       执行权限:所有用户       语法:cat [文件名]


功能描述:显示文件内容          


-n  显示行号


⭐️例1:

545544a6945040eab88fd3c421a758ae.png


❤️命令名称:less

命令所在路径:/bin/more      执行权限:所有用户        语法:more  [文件名]            


功能描述:分页显示文件内容


  (空格) 或f       一页一页翻              


  (Enter)           一页一页行                


 q或Q              退出(ctrl+d也是可以的)


⭐️例1:more  /etc/services


这个系统文件是很大的;感兴趣的小伙伴不妨自己去测试一下!


❤️命令名称:less

命令所在路径:/usr/bin/less     执行权限:所有用户     语法:less  [文件名]


功能描述:分页显示文件内容(可向上翻页)


⭐️例1: less  /etc/services


less功能比more更加的强大;按PgUp可以往上翻页;按下 / +输入关键字,后可以搜索,会反显高亮 ;按q退出(more也可以)


❤️命令名称:head

命令所在路径:/usr/bin/head     执行权限:所有用户    语法:head  [文件名]


功能描述:显示文件前面几行  


-n 指定行数


⭐️例1:  head -n 20 /etc/services


会只显示前20行的内容;我们可以通过-n+数字来控制要看的行数;不加-n参数默认是只显示前10行的内容


❤️命令名称:tail


命令所在路径:/usr/bin/tail       执行权限:所有用户      语法:tail  [文件名]


功能描述:显示文件后面几行  


-n 指定行数  


⭐️例1: tail -n 18 /etc/services


会只显示后18行的内容;我们可以通过-n+数字来控制要看的行数;不加-n参数默认是只显示后10行的内容


2.1.4 链接命令


❤️命令名称:ln

命令英文原意:link     命令所在路径:/bin/ln        执行权限:所有用户


语法:ln  -s  [原文件]  [目标文件]           功能描述:生成链接文件    


ln       创建硬链接


ln -s  创建软链接


⭐️例1:ln -s  /etc/issue  /tmp/japan/issue.soft      


创建文件/etc/issue的软链接/tmp/japan/issue.soft        


⭐️例2:ln  /etc/issue  /tmp/issue.hard      


创建文件/etc/issue的硬链接/tmp/japan/issue.hard


ef37324d2d774b20a6bc31b4f0281ad5.png


⭐️软链接特征: 软链接就类似Windows的快捷方式一样


1、lrwxrwxrwx    l 软链接   软链接文件权限都为rwxrwxrwx


2、只是符号链接,类似于快捷方式


3、/tmp/issue.soft -> /etc/issue 箭头指向原文件


⭐️硬链接特征:相当于拷贝


1、拷贝cp -p + 同步更新


2、可通过i节点识别(ls -i就能看到前面的i节点)


3、不能跨分区


4、不能针对目录使用


总结:


今天的Linux基础学习就到这了。我们大概了解了Linux里的目录结构,这便于我们以后的操作和理解!还讲解了一大块常用命令中的文件处理命令,主要包括:显示命令、目录处理命令、文件处理命令、链接命令!希望对大家有所帮助!


下一期我们还接着学习常用命令的其它类型命令,一起加油吧!


相关文章
|
1天前
|
Linux 数据处理
探索Linux下的readelf命令:深入了解ELF文件
`readelf`是Linux下分析ELF文件的命令行工具,用于查看文件头、节区、符号表等信息。支持可执行文件、共享库等多种类型。常用选项有`-h`(文件头)、`-l`(程序头)、`-S`(节区)、`-s`(符号表)、`-r`(重定位)和`-d`(动态节区)。结合其他工具如`objdump`,能深入理解二进制文件,助力开发和调试。
|
1天前
|
Linux 数据处理
探索Linux下的readlink命令:解析符号链接的利器
`readlink`命令在Linux中用于揭示符号链接的指向,显示它们所链接的实际文件或目录的路径。它可以显示简洁的绝对路径(-f),处理循环链接(-e),或不加换行符输出(-n)。例如,查看`link.txt`指向:`readlink link.txt`;获取绝对路径:`readlink -f link.txt`。使用时要注意链接是否存在、权限问题和可能的循环链接。
|
1天前
|
Linux
常用的Linux系统命令及其使用技巧
常用的Linux系统命令及其使用技巧
|
2天前
|
存储 安全 Linux
深入解析Linux的`read`命令
`read`命令在Linux shell中用于从标准输入读取数据并赋值给变量。它可以用于交互式脚本,提供用户输入或读文件。关键选项包括`-p`(提示用户)、`-r`(禁用转义)、`-s`(静默模式,适合密码)、`-t`(超时)和`-n`(读取特定字符数)。示例包括基本输入、带提示的密码输入和设置超时的输入。注意安全处理密码和验证用户输入。
|
2天前
|
存储 Linux 数据处理
Linux中的raw命令:深入解析与实用指南
Linux的`raw`命令详解:用于直接访问硬件设备,绕过文件系统,提供高灵活性和性能。适用于数据处理,如直接复制文件或设备数据。使用时需谨慎,注意设备理解、数据备份及正确选项选择。结合其他工具可实现更多功能。示例:`raw file1 file2`复制文件,`raw -s 1024 file1 file2`跳过字节复制。
|
2天前
|
Linux 数据处理 vr&ar
Linux下的ranlib命令:静态库文件的索引生成器
`ranlib`是Linux用于加速静态库(.a文件)链接的工具,它生成索引以优化查找目标文件。当链接器处理静态库时,索引能快速定位目标,提升效率。命令如`ranlib libexample.a`创建索引。注意,新工具链可能已自动包含此功能,使用前应确保库文件未含索引,避免重复生成。
|
2天前
|
缓存 安全 Unix
深入探索Linux中的qemu-ga命令
**QEMU的qemu-ga是虚拟机内的守护进程,提供带外通道管理guest OS,如文件操作、关机、休眠等。它通过virtio-serial通信,特点是安全、高效、灵活。例如,使用`virsh qemu-agent-command`执行虚拟机内部命令。最佳实践包括安装配置agent、设置黑名单、考虑安全和性能、定期备份及利用社区资源。**
|
2天前
|
监控 Linux 应用服务中间件
探索Linux中的`ps`命令:进程监控与分析的利器
探索Linux中的`ps`命令:进程监控与分析的利器
|
2天前
|
IDE Linux 数据处理
探索Linux中的`pydoc`命令:Python文档生成器的力量
`pydoc`是Linux上Python的文档生成和查看工具,尤其对数据科学家有价值。它从docstring生成模块、函数和类的文档,提供快速API参考。主要特点包括易用性、支持标准库和第三方库、跨平台。命令行示例:`pydoc pandas` 查看库文档,`pydoc numpy.array` 查看类详情,`pydoc -k 关键字` 进行搜索。使用时注意正确安装Python,编写清晰的docstring,并结合IDE以提升效率。
|
2天前
|
存储 算法 安全
深入理解Linux命令pwscore:密码质量的守护者
**pwscore命令详解:Linux密码强度评估工具** pwscore是Linux下的密码强度检查工具,分析密码长度、字符类型及避免常见模式来评分。它提供简单语法、可定制选项和高效评估。例如,`pwscore -l 12 -m alnum`评估至少含12个字符和字母数字的密码。应用时,定期评估用户密码,制定强密码策略,避免常见单词和模式,使用密码管理器,并保护输出信息安全,以增强系统安全性。