Linux基础学习:文件与目录管理
目录与路径
目录的相关操作
几个特殊的目录:
. :表示当前目录
.. :表示上一层目录
- :表示前一个工作目录
~ :表示当前用户所在的主文件夹
~account :表示account用户所在的主文件夹
几个常见的处理目录命令
cd:切换目录
- cd dir
- 例如:cd /home或者cd ../
pwd:打印当前目录的全路径
- pwd [-p]
- -p参数表示显示正确的路径而不是连接文件的路径。
mkdir:新建一个目录
- mkdir [-mp]
- -m :配置文件权限,直接设置,不需要看默认权限
- -p:递归创建,包括子目录
mkdir -p test1/test2/test3(递归创建)
- mkdir -m 711 test2(设置文件权限)
rmdir:删除一个空的目录
- rmdir [-p]
- -p 参数连同上一层的空目录一起删除,递归删除
rmdir -p test1/test2/test3
执行文件路径的变量:$PATH
PATH表示环境变量,内容是由一堆目录构成,每个目录中间用冒号(:)来分隔,并且有顺序之分。处于环境变量中的一些重要执行文件可以在系统任意处执行。
文件与目录管理
查看文件与目录:ls
参数如下:
-a:全部文件。(常用)
-A:全部文件,但不包括.和..
-d:仅列出目录本身。(常用)
-f:直接列出结果,不排序(ls 默认会以文件名排序)
-F:根据文件、目录等信息给予附加信息。
- * :表示可执行文件;/:表示目录; = :表示socket文件; | :表示FIFO
-h :将文件容量以GB、KB等列出来。
-l:列出文件详细信息。包括文件类型、权限、修改信息等
-r:将排序结果反向输出
-S:以文件容量大小排序
-t:以时间排序
–full-time:以完整时间显示
复制、删除与移动:cp、rm、mv
cp :复制
- cp [-adfilprus] 源文件 目标文件
- -d:若文件为连接文件属性(link file),则复制连接文件属性而非文件本身
- -f:为强制复制,若目标文件已经存在且无法开启,则先删除在复制
- -i:若目标文件已存在,则会先询问是否覆盖,在操作
- -l:进行硬链接的文件创建,而非文件本身
- -p:连同文件属性一同复制
- -r:递归持续复制,用于目录的复制行为
- -s:复制成为符号连接文件,即”快捷方式“
- -u:若目标文件比源文件旧才更新
* rm:删除*
- rm [-fir] 文件或目录
- -f:强制删除
- -i:在删除前提示用户
- -r:递归删除
mv:移动
- mv [fiu] 源文件/目录 目标目录
- mv [options] 源1 源2 源3 … 目标(将多个源移动到目标目录)
- -f :强制移动
- -i:移动前询问,防止覆盖
- -u:若目标已经存在,且源比较新才更新
取得路径的文件名与目录名称
basename:取得最后一个文件名
- basename /etc/sysconfig/network
- 得到文件名:network
dirname:取得目录名
- dirname /etc/sysconfig/network
- 得到目录名:/etc/sysconfig
文件内容查找
常用查找命令如下:
cat:由第一行开始显示文件内容
tac:从最后一行开始显示
nl:显示的时候输出行号
more:一页一页的显示内容
less:与more类似,同时可以翻页
head:只看头几行
tail:只看结尾几行
od:以二进制方式读取文件内容
直接查看文件内容
- cat
cat [-AbEnTv] 文件名
-A:相当于 -vET 的组合参数,可列出一些特殊字符,而不是空白而已
-b:列出行号,仅针对非空白行做行号显示
-E:将结尾的断行字符 $ 显示出来
-n:打印出行号,连同空白行号也打印出来
-T:将tab键以 ^I 显示出来
-v:列出一些看不出来的特殊字符
- tac
tac 文件名
- nl
nl [-bnw] 文件
-b:指定行号显示方式
- -b a:同cat -n,显示所有行号
- -b t:不列出空白行行号,默认值
- -n:列出行号表示方法
- -ln:最左方显示行号
- -rn:【自己字段】的最右方显示行号,且不加0
- -rz:行号在【自己字段】的最右方显示,且加0
- -w:行号字段占用位数
翻页查看
- more(一页一页翻动)
more /etc/manpatch.config
最后一行显示文件的百分比。在more运行过程中,可以通过以下几个按键进行控制:
- 空格键(space):向下翻一页
- Enter:向下滚动一行
- /字符串:查找字符串
- :f:显示出文件名以及目前显示的行数
- q:离开more
- b或者Ctrl + b :往回翻页,不过这操作只对文件有用,对管道无用
- less(一页一页翻动)
less /etc/manpatch.config
less用法比more更加灵活,可以向前向后翻页;向前向后查找:
- 空格键:向下翻页
- Pagedown:向下翻页
- Pageup:向上翻页
- /字符串:向下查找
- ?字符串:向上查找
- n:重复前一个查询
- N:反复重复前一个查询
- q:离开less这个程序
数据选取
- head(文件开头)
head [-n number] 文件 (-n 后接数字,代表显示几行的意思)
默认显示前10行
- tail(显示后面的几行数据)
tail [-n number]
非纯文本文件读取:od
od [-t TYPE] 文件
-t :后面接文件类型
- a:默认字符输出
- c:使用ASCII字符输出
- d[size]:利用十进制输出,每个整数占size bytes
- f[size]:利用浮点数输出,每个数占size bytes
- o[size]:利用八进制输出,每个数占size bytes
- x[size]:利用十六进制输出,每个数占size bytes
修改文件时间或创建文件:touch
linux下会记录三个主要变动的时间:modification time(mtime)、status time(ctime)、access time(atime)
- modification time(mtime):当文件内容更改时,更新该时间
- status time(ctime):当文件状态改变时,更新该时间
- access time:当文件被取用时,就会更新这个读取时间
文件的时间是很重要的,通过touch命令可以修改文件时间。
touch [-acdmt] 文件
-a :修改访问时间
-c:仅修改文件的时间,若文件不存在,则不创建新文件
-d:后面可接修改的日期,而不用目前的日期,也可以使用–data==”日期或时间”
-m:仅修改mtime
-t:后面可接修改的时间,而不用目前的时间,格式为[YYMMDDhhmm]
文件与目录的默认属性与隐藏属性
文件默认权限:umask
umask就是指定“目前用户在新建文件或目录时候的权限默认值”。
查询umask默认值:
umask:显示的数值后三位与一般权限有关。其数值刚好与文件属性相反,为1表示屏蔽属性。
umask -S:显示的是文件属性。
umask 数字:设置默认属性
文件隐藏属性:chattr,lsattr
- chattr:设置文件的隐藏属性(只在Ext2/Ext3的文件系统上有效)
chattr [+-=] [ASacdistu] 文件或目录名
+:增加某一特殊参数
-:删除某一特殊参数
=:仅有后面接的参数
A:设置A属性后,他的访问时间atime不会被修改
S:一般文件是异步写入磁盘的,加入S属性后,会“同步写入磁盘
a:设置a后,这个文件只能增加数据,不能删除和修改数据,只有root才能设置这个属性
c:设置c后,将会自动将此文件压缩,读取时自动解压。
d:当dump程序执行时,设置d属性可使该文件和目录不会被dump备份
i:让一个文件“不能被删除,改名,设置连接也无法写入或添加数据”,只有root能设置此属性
s:当设置s后,如果删除一个文件,则该文件会被完全的从这个硬盘空间删除
u:与s相反。删除的文件可以从磁盘恢复
- lsattr(显示文件的隐藏属性)
lsattr [-adR] 文件或目录
-a :将隐藏的文件属性显示出来
-d:如果接的是目录,仅列出目录本身属性
-R:连同子目录数据也一并列出来
查看文件类型:file
file 文件名
命令与文件的查询
脚本文件名的查询
- which(寻找“执行文件”)
which [-a] command
-a :将所有由PATH目录中可以找到的命令均列出,而不只是第一个被找到的命令
文件名的查找
- whereis(寻找特定文件)
whereis [-bmus] 文件或目录名
-b:查找二进制
-m:只在manual路径下查找
-s:只在source源文件查找
-u:查找不在上述三个选项当中的其他特殊文件
- locate(找出相关的文件)
locate [-ir] keyword
-i :忽略大小写的差异
-r:后面可接正则表达式
locate passwd :列出所有与passwd相关的文件名
注意:这个locate寻找的数据是经由数据库/var/lib/mlocate/里面的数据查找的,所以不用再去硬盘里访问数据,速度很快。但是数据库的创建,默认每天执行一次,如果新建新的文件后必须手动更新数据库(updatebd),否则会找不到。
updatebd:根据/etc/updatedb.conf的设置去查找系统硬盘内的文件名,并更新var/lib/mlocate内的数据库文件
- find
find [PATH] [option] [action]
- 与时间有关的参数:-atime,-mtime,-ctime
- -mtime +n :列出n天之前的文件
- -mtime -n :列出n天之内包含n的文件
- -newer file:列出比file还要新的文件
- 与用户或用户组有关的参数:
- -uid n:n为数字,是用户账号的ID,即UID
- -gid n :为数字,是用户组的ID,GID
- user name
- group name
- 与文件权限及名称有关的参数:
- -name filename :查找文件名为filename
- -size [+-]SIZE:查找比SIZE还要大(+)或者小(-)的文件
- type TYPE :查找文件类型(f:常规文件;b,c设备文件;d:目录;l:连接文件;s:socket;p:FIFO)
- perm mode :查找文件权限等于mode的文件
- -perm -mode :必须全部包含mode权限(三个权限)
- -perm +mode :任意一个包含mode权限即可
- find -perm +7000:只要包含s或t即可
- find -perm -7000:必须包含—s–s–t所有的三个权限
权限与命令之间的关系
用户进入一个目录成为可工作目录的基本权限
- 可使用的命令:如cd等
- 目录所需要的权限:用户对这个目录至少需要具有x权限。
- 额外需求:如果用户想要在某个目录使用ls查询,还需要具备r权限。
用户在某个目录读取一个文件的基本权限
- 可使用的命令:如cat,more,less等
- 目录所需要的权限:用户对这个目录至少需要具有x权限。
- 文件所需权限:用户对文件至少要具有r权限。
用户在某个目录修改一个文件的基本权限
- 可使用的命令:如nano,vi等
- 目录所需要的权限:用户对这个目录至少需要具有x权限。
- 文件所需权限:用户对文件至少要具有r,w权限 。
用户在创建一个文件的基本权限
- 目录所需要的权限:用户对这个目录至少需要具有w,x权限。
用户进入目录并执行该目录下的某个命令的基本权限
- 目录所需要的权限:用户对这个目录至少需要具有x权限。
- 文件所需权限:用户对文件至少要具有x权限
Linux基础学习:文件与目录管理的更多相关文章
- Linux基础命令-文件与目录
Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...
- Linux学习-文件和目录管理
Linux文件和目录管理 文件系统架构 1.Linux文件系统具有层级性 1)文件或者目录起始于根目录"/"成为树状结构 2)最顶层由/开始 2 ...
- Linux命令工具基础02 文件及目录管理
文件及目录管理 文件管理不外乎文件或目录的创建.删除.查询.移动,有mkdir/rm/mv 文件查询是重点,用find来进行查询:find的参数丰富,也非常强大: 查看文件内容是个大的话题,文本的处理 ...
- Linux---远程连接、命令行基础、文件及目录管理
远程连接管理Linux实践(centos) 连接小知识 IP地址:访问连接服务器,需要通过服务器的IP地址来实现,服务器的IP地址就相当于服务器的具体地址.一计算机都会有一个唯一的32位的IP地址,8 ...
- Linux基础学习笔记5-软件管理
包管理器 二进制应用程序的组成部分: 二进制文件.库文件.配置文件.帮助文件 程序包管理器: debian:deb文件.dpkg包管理器 redhat:rpm文件.rpm包管理器 rpm:Redhat ...
- Linux基础学习笔记2-文件管理和重定向
本节内容 1)文件系统结构元素 2)创建和查看文件 3)复制.转移和删除文件 4)软和硬链接 5)三种I/O设备 6)把I/O重定向至文件 7)使用管道 文件系统和结构 文件系统 文件和目录被组织成一 ...
- [linux基础学习]默认的目录介绍
以下用一个表格来罗列linux默认的目录或文件及其用途: 目录/文件 用途 来源 / /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. - / ...
- Linux 基础——处理文件与目录的命令
继续第三天学习,每天下班后积累一点点,始终相信厚积薄发. 一.处理文件的命令 touch dest_file:在当前目录下创建指定的文件. cp source dest:将指定的猿文件复制到目标文件, ...
- Linux基础学习-LVM逻辑卷管理遇到的问题
LVM学习逻辑卷管理创建逻辑卷遇到的问题 1 实验环境 系统 内核 发行版本 CentOS 2.6.32-754.2.1.el6.x86_64 CentOS release 6.10 (Final) ...
- Linux基础学习系列目录导航
Linux基础学习-通过VM安装RHEL7.4 Linux基础学习-命令行与图形界面切换 Linux基础学习-基本命令 Linux基础学习-RHEL7.4之YUM更换CentOS源 Linux基础学习 ...
随机推荐
- 在 ASP.NET Core 中使用 MySql 踩坑记录
使用 Pomelo.EntityFrameworkCore.MySql 生成 MySQL 数据库 关于如何使用请查看项目文档即可 组件地址:https://github.com/PomeloFound ...
- appium-desktop定位元素原理
初衷 最近在编写Android App自动化用例,其中元素定位相对来说耗费的时间比较长.我们都知道Appium-desktop拥有自己的录制功能,我们就在想是不是可以把录制功能跟我司的自动化框架(AT ...
- #Java学习之路——基础阶段二(第一篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之八 || API项目整体搭建 6.3 异步泛型仓储+依赖注入初探
代码已上传Github+Gitee,文末有地址 番外:在上文中,也是遇到了大家见仁见智的评论和反对,嗯~说实话,积极性稍微受到了一丢丢的打击,不过还好,还是有很多很多很多人的赞同的,所以会一直坚持下去 ...
- 文本分布式表示(一):word2vec理论
Word2vec是Google的Mikolov等人提出来的一种文本分布式表示的方法,这种方法是对神经网络语言模型的“瘦身”, 巧妙地运用层次softmax(hierarchical softmax ) ...
- C++STL之Vector向量详解,用法和例子 一起学习 一起加油
C++ STL之vector用法总结 1 ...
- SqlServer注意事项总结,高级程序员必背!
本篇文章主要介绍SqlServer使用时的注意事项. 想成为一个高级程序员,数据库的使用是必须要会的.而数据库的使用纯熟程度,也侧面反映了一个开发的水平. 下面介绍SqlServer在使用和设计的过程 ...
- JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署
接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...
- centos下 .net core 2.0 升级 到 2.1 遇到的一个小问题
.net core 2.0的安装方式,可能不是用yum方式安装的,所以,在用yum安装2.1之后,无法运行.net core 所以用来下面的这个命令,重新映射一下dotnet目录. ln -s /us ...
- c# API接受图片文件以Base64格式上传图片
/// base64上传图片 /// </summary> /// <returns>成功上传返回上传后的文件名</returns> [HttpPost] publ ...


