Linux 文件目录管理的指令
1.知识点:绝对路径:写法从/(根目录开始) /usr/share/doc
相对路径:不从/开始 如cd ../man
如果清楚文件夹内部情况,建议使用相对路径在文件夹之间跳转,而不用绝对路径,每次都是一长串地址
. 代表当前层目录
..代表上层目录
~代表自己的根目录
~user(user是代指用户哇!)代表到user这个人的根目录
2.cd 与 pwd
cd ..回到上一层目录
cd ../home相对路径的写法
cd /var/www/html 绝对路径的写法
cd 回到用户的根目录
cd ~ 回到用户(个人)的根目录
cd ~xwc 回到xwc用户的根目录
pwd 显示当前目录(print working directory)
3.mkdir 与 rmdir
mkdir 目录名称 这个必须一层一层建目录
rmdir 目录名称 这个必须一层一层的删除
否则就会提示不为空
要是需要(不假思索地)都删除,可以使用指令 rm-rf h
全没了(所以不大安全)
4.PATH环境变量
什么是PATH呢
当我们执行一个指令时,系统会依照PATH的设定到PATH定义的每个路径下搜寻文件,先搜寻到的指令文件先被执行。
怎么看呢?
指令 echo $PATH
如何将/root加到PATH中呢?(知道就好)
PATH=“$PATH”:/root(感觉跟赋值语句一样)
5.文件与目录管理指令ls cp rm mv
ls显示文件名称属性
-a列出所有文件(包括隐藏)
-l详细列出,连同文件大小,属性数据
-S以文件大小排序
--color=never/always/auto(不显示颜色,均显示颜色,由系统自行判断)
ls -l的简写 ll(两个小写的L)这个命令可以说是超级方便了。
cp 复制
-d 我复制个快捷方式到指定位置
-r 目录的复制
原本是空文件夹的3里面多了个1
-s 做成链接文件
-u 如果源文件较新,或者没有目标文件,才会进行复制动作。可用于备份操作。
rm 删除
-i默认参数 询问是否删除
-rf 疯狂删除
mv 移动,变更文件名
mv x x.old 重命名
mv x1 x2 x3... /root 即把x1 x2 x3文件一并移动到root下
6.查看文件内容
cat与tac
cat -n查看信息时把行号也给我列出来
(Concatenate 连续的缩写,不过较不常见,配合more和less比较好)
tac 反向显示(最后一行在最上面)
more 与less
more ~/.txt一页一页的显示文件内容
ls -al|more 把ll一页一页的显示出来
相较于more, less更灵活,
可以按PgUp PgDn翻页
less 还能查找,优秀
head与tail
查看文档文档开头,文档结尾
tail -n 5 1.txt(只显示1.txt的后五行)
nl 与cat -n相似
od 读取非ASCII数据文件,此时使用vi more lesss指令看不出来内容。输出来的数据都是内存中的数据。
7.链接文件的介绍
what is inode?
介绍inode之前 我们先看硬盘结构的大体介绍
圆形 每个硬盘盘头都有一个可以读写的磁头
磁头固定,绕硬盘盘片转一圈,轨迹就是磁道Track,
所有盘片相同磁道号的集合成为磁柱,每一磁道被划分了很多区域,每个区域叫一个扇区。扇区是硬盘的最小存储物理量,约512字节。
硬盘分割后,格式化。格式化要考虑两个方面,Block和inode,Block是磁盘可以记录的最小单位,由数个扇区组成。
Block是记录文件内容数据的区域,inode是记录该文件属性及放置在哪个Block的信息,所以每个文件都会占用一个inode,所以我们就知道,一个分区被格式化为一个文件系统后,基本上他都一定会有inode table 与数据区两大块。
ln(唉,终于要说这个指令了)
相当于windows的快捷方式,不过链接功能要好用得多。连接分硬链接和符号链接。
硬链接:当系统要读取一个文件时,他会先读取inode table,再建一个inode到文件Block,没有错,这两个inode都可以到我们需要的Block那里去。但是“目录”本身是消耗inode的,这样,缺点之一:硬链接就不能链接目录,第二,不能跨文件系统。
符号链接:建个文件,相当于路牌,指向所需文件。
测试案例:
(cp 最后那个 "." 别忘了)
准备工作,建文件夹
0原始信息:
1硬链接信息:
注意看,上面那个数字变成2了(好神奇啊!!),这就表示占用了inodes。
2符号链接信息
注意passwd-soft会指向另一个文件,而且,最前面属性为1,此外,他是一个独立文件。先删除passwd,我们看一下内容。
3使用more
(好神奇)
如果使用-s参数,符号链接虽然跟windows的快捷方式相像,但不同,在windows中,你怎么修改快捷方式那个图标,甚至内部信息,都不会对原文件有一丝一毫的影响(撑死对不上号打不开了),但是Linux不同,你修改链接文件,被指向的文件也会修改的。
如果你:ln -s /bin /root/bin /root/bin中的东西其实都是/bin的。
8.文件与目录权限的指令
chown chgrp chmod
-R 可以一下改变一个目录内所有文件的权限噢
umask 可以修改建立文档时的权限噢
用户建文档默认权限是666
建文件夹默认是777
你可以 umask 111
之后再建个文件夹 就会是 666了
chattr lsattr
chattr +i 1.txt 如此就无法修改这个txt文档了
chattr -i 1.txt 解除该属性
可是我们如何看这个文件有哪些属性呢?
没错 lsattr就是来看的
-a 将隐藏文件的属性也显示
-R将子目录的数据也一并显示出来
这两个指令要谨慎使用。+i后就没法变了。
9.搜寻文件或目录
which查看可执行文件的位置
whereis查看文件的位置
locate 配合数据库查看文件位置
find 实际搜寻硬盘查询文件名称
which 别忘了是查看可执行文件的位置(eg: passwd)
whereis
(指令有的翻译了,有的没翻译。)
从上到下依次是只找二进制,只找说明文件manual路径下的文件,只找source源文件,-u是没有说明文档的文件。
whereis -m passwd
仅搜寻man page 所在的目录。
whereis 相对于find快很多,这是为什么呢
因为Linux系统将系统内的所有文件都记录在一个数据库文件中,所以就快了(??)。
locate
和whereis 一样都是从数据库文件中来找东西,但是呢,Linux的数据库默认是一周更新一次,所以你刚刚删掉的,你会再找到,你刚刚添加的,你会在下一周才能找到。如何解决这个问题呢?
updatedb闪亮登场
来让我们看看吧
首先 touch 建个文档123456
用locate去数据库文件中找,(没更新呢,怎么会找到呢)
updatedb更新一下,
再找,找到了,然后我们删除一下
删除了,可是还能在数据库文件找到,更新一下,就找不到了。嗯就是这样。
那么到底要建立哪些数据库呢,是否全部都要建立,似乎不需要,可以选择需要建立数据数据库的目录。在/etc/updatedb.conf内设定。
find(这个不简单,我之前还天真的以为只是查找)
(好想跳过,而且书上说了,由于find在寻找数据时,相当耗硬盘(那可是递归呀。。),所以没事不要用find,用更棒的locate和whereis代替,不过还是看看吧)
1.时间
-atime n 将n*24小时内被存取过的文件列出来
-ctime n 将n*24小时内被改变、新增的文件或目录列出来
-mtime n 将n*24小时内被修改过的文件列出来
-newer file 把比file还要新的文件列出来
2.使用名称
-gid n 寻找群组ID为n的文件
-group n 寻找群组名称为n的文件
-uid n 寻找拥有者ID为n的文件
-user n 寻找拥有者名称为n的文件
-name file 找file(之前只知道这一条)
-type type 按类型找(后面那个type可以是b,c,d,p,l,s)
10.SetUID,SetGID,Sticky bit 与file指令
UID用户代号
GID群组代号
可以用 more /etc/passwd 查看系统中所有账号
如果新建一个用户,UID、GID都是0,那就是root身份。
SUID、SGID又是什么?
Set UID(SUID)的主要功能就是在某个文件执行期间具有文件拥有者的权限。
就是下图中那个rw “s”,这里是SUID,如果是-rwxr-sr-x这里就是SGID。
当一个文件具有SUID时,同时others群组拥有x,那么当others群组执行该程序时,others群组将拥有该文件的owner权限。
(owner:?????就因为一个SUID,别人就能和我一样高贵了?)
(可不是嘛,所以涉及到变更一个文件使之具有SUID,SGID,要万分谨慎)
Sticky bit
为什么 othrs的x没有用s代替的情况呢?
没必要。
所有人都可执行,他们自然有权限。
这里有个新的属性(Sticky bit) t,最大的用处:具有t属性的目录,其下的文件或目录只有文件拥有者及root 才有权删除。
在我们的系统中预设有一个这样的目录,辣就是/tmp
最后一行的tmp “t“引人注目
这说明了什么,在这个目录里,普通用户可以新建修改任何文件,但是仅能删除自己建立的文件,除非你是root。
来让我们试试吧
root登陆
到/tmp里建个文件夹shanbudiao
修改权限777
用普通账户登陆
尝试删除
失败了。
最后一个指令 file
file 【文件名】
可以查看文件类型,还可以看是否被加入SUID等信息。
(文件部分的指令就到此结束了,o(* ̄▽ ̄*)ブ)
Linux 文件目录管理的指令的更多相关文章
- Linux文件目录管理
Linux文件目录管理 文件的路径 路径: . 表示当此层目录 .. 表示上一层目录 - 代表前一个工作目录 ~ 代表"目前用户身份"所在的文件夹 ~account 代表accou ...
- 5. Linux文件目录管理和打包压缩与搜索命令
1.touch:用于创建空白文件或设置文件的时间 举例:使用ls 命令查看一个文件的修改时间,然后修改这个文件,最后再通过touch命令把修改后的文件时间设置成修改之前的时间(很多黑客就是这样做的): ...
- linux文件目录管理命令
1.touch命令 touch命令用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”. touch test命令可以创建出一个名为test的空白文本文件 touch命令的参数 ...
- linux 文件目录类的指令 包含查找
pwd :显示当前目录的绝对路径 ls : 显示当前目录 -a 显示所有文件 包括隐藏文件 -l 以列表的方式进行显示 cd 切换目录 cd ~ :返回家目录 cd .. :返回上一级的目录 m ...
- Linux 文件目录管理命令
1.touch 用于设置空白文件或设置文件时间 touch命令参数及作用 参 数 ...
- Linux目录管理
Linux文件目录管理 1:目录管理 1)切换目录 # cd [ 目录名称] 2)退到上一目录 # cd .. 2:创建目录 mkdir [文件名称] mkdir -p [文件名称] 递归创建目 ...
- linux学习(三)-----linux用户管理、实用指令
用户管理 基本介绍 说明: 1.Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向 系统管理员申请一个账号,然后以这个账号的身份进入系统. 2.Linux 的用户 ...
- 学习Linux下的文件目录管理
文件目录管理 一.认识Linux文件系统的架构 在Linux中是没有盘符这个概念的,即Linux中没有C盘和D盘的分盘.那么我们直接通过对目录的操作实现对磁盘的读写,因 ...
- 【Linux学习】Linux用户管理1—用户查询指令、用户切换
Linux用户管理1-用户查询指令.用户切换 一.用户查询指令 who: 查看当前在线用户情况 -a:显示所有用户的所有信息 -m:显示运行该程序的用户名,和"who am I"的 ...
随机推荐
- mybatis中使用selectKey,返回结果一直是1
转:https://www.cnblogs.com/caizhen/p/9186608.html mybatis中使用selectKey,返回结果一直是1,结合这个问题,笔记一下selectKey标签 ...
- 羊城杯wp babyre
肝了好久,没爆破出来,就很难受,就差这题没写了,其他三题感觉挺简单的,这题其实也不是很难,我感觉是在考算法. 在输入之前有个smc的函数,先动调,attach上去,ida打开那个关键函数. 代码逻辑还 ...
- 整理C#获取日期显示格式
C#获取当前日期的几种显示格式 有时候需要用一些不常用的日期格式时,总是要去网上查找,很多都是复制粘贴,还不完整.就整理一下. DatetimeTextBox.Text += DateTime.Now ...
- B 站崩了,受害程序员聊聊
非吃瓜,B 站事件始末分析 + 防治技术分享 大家好,我是鱼皮,昨天小破站崩了的事情相信很多朋友都听说了. 这要是搁以前,不爱吃瓜的我根本不会去关注这种事,崩了就崩了呗,反正天塌下来有程序员大佬们扛着 ...
- varnish4.X安装
目录 1. rpm方式 2. 编译安装 2.1 依赖包 2.2 编译Varnish 本文提供了两种安装方式,但建议使用编译安装. 官方链接:https://varnish-cache.org/ 部署文 ...
- Activiti7 回退与会签
1. 回退(驳回) 回退的思路就是动态更改节点的流向.先遇水搭桥,最后再过河拆桥. 具体操作如下: 取得当前节点的信息 取得当前节点的上一个节点的信息 保存当前节点的流向 新建流向,由当前节点指向上 ...
- 抓包工具-Charles
1.简介Charles Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的.charles有Window版本和Mac OS版本,也同时支持ios ...
- SLAM的数学基础(4):先验概率、后验概率、贝叶斯准则
假设有事件A和事件B,可以同时发生但不是完全同时发生,如以下韦恩图所示: 其中,A∩B表示A和B的并集,即A和B同时发生的概率. 如此,我们很容易得出,在事件B发生的情况下,事件A发生的概率为: 这个 ...
- [XIN算法应用]NOI2020美食家
XIN(\(updated 2021.6.4\)) 对于很多很多的题目,发现自己并不会之后,往往会直接冲上一个XIN队算法,然而,这样 \(\huge{\text{鲁莽}}\) 的行为只能获得 TLE ...
- Python基础之用PyQt5界面代码分离以及自定义一个槽函数
最近开发一个项目,需要用到界面,遇到界面不能实时更新的问题,看到网上很多用槽函数,但是大多都是些button的,并不是我需要的,要么就是整数的,后来自己进行尝试,写了一个自定义的槽函数处理treewi ...