文件目录

本文最后更新于:2022年7月11日 下午

文件目录

文件目录

基本语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
pwd(print working directory):显示当前目录的绝对路径
ls:罗列目录里内容,语法--ls [参数] [目录或者文件]
参数(可以组合):
-a:全部文件,包括隐藏的(以.开头的)
-d:仅列出目录本身,例:ls -d test 只列出 test,没有的话提示没有那个文件或目录
-l:罗列目录包含文件属性权限等
例:drwxr-xr-x. 2 muzili muzili 4096 9月 30 11:30 桌面
文件类型与权限 链接数 文件属主 文件属组 文件大小(byte) 建立或最近修改时间 名字
-R(要大写):递归查看目录
mkdir:创建新目录
-p 路径:可创建层级目录
rmdir:删除一个空目录
-p 路径:删除层级空目录
touch:新建文件
cd:切换目录
cd ~:回到根目录
cd ..:上级目录
cp 源 目标:复制文件或者目录
rm:删除文件或目录
-f 强制
-r 递归
mv:移动文件或者目录或修改名称,类似于剪贴粘贴
cat:由第一行开始显示文件内容
-b:列出行号,空白行不标行号
-n:列出行号,空白行也有
-v:列出一些看不见的特殊字符
tac:从最后一行开始显示
more:一页一页显示文件内容
打开文件后
空白键:向下翻一页
回车键:向下翻一行
q:退出文件
b:回翻一页
head -n 文件:只看头n行
tail:只看尾行
-n 文件:只看尾n行
-f:文件增长时,输出后续内容
-s:可与-f结合,每次反复间隔休眠5s
history:所敲命令历史
重定向:
例:ls -l > test.txt,列表的内容写到test.txt(覆盖写)
ls -l >> test.txt,列表的内容追加到test.txt末尾
history > test.txt,敲的命令历史写到test.txt
tail,head都可以结合使用

复杂操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
cp /very/long/path/file{,.bak}
# 给 file 复制一个叫做 file.bak 的副本

rm file{1,3,5}.txt
# 删除 file1.txt file3.txt file5.txt

mv *.{c,cpp} src/
# 将所有 .c 和 .cpp 为后缀的文件移入 src 文件夹

cd - 返回刚才待的目录

!$ 会替换成上一次命令最后的路径(只是路径),假设temp是个文件夹
cat temp ---> 执行报错

cd !$ ---> 相当于执行了 cd temp

!!,可以自动替换成上一次使用的命令
systemctl status firewalld 需要权限

sudo !! ---> sudo systemctl status firewalld

Ctrl+R 可以根据输入的关键字搜索最近一次相关的命令

history 命令配合管道符和 grep 命令来寻找某个历史命令,回显结果前的数字表示第多少次执行的命令:
history | grep sudo
22 sudo mv redis.conf /etc/local/docker/redis/conf
40 sudo docker ps
94 sudo systemctl restart firewalld
96 history | grep sudo
!+命令编号会执行该命令
!96 即会执行history | grep sudo 命令

history 加管道加 grep 这样打的字还是太多,可以在 你的 shell 配置文件中(.bashrc,.zshrc 等) 中写这样一个函数:
his()
{
history | grep "$@"
}

只需要 his 'some_keyword' 即可搜索历史命令

搜索查找

1
2
3
4
5
6
7
8
9
10
11
find 路径 -name 要匹配的:按照名字查找
grep:在文件内搜索字符串匹配的行
查找某个文件位置(包括可执行文件、源文件、man文件)
whereis 某个
查询的路径范围可以使用:whereis -l 查看
查看某个可执行文件的位置(遍历$PATH)
which 某个
全局查找(最好指定查找路径,不然太慢)
find ~ /bin/ -name 某个
find和-name中间指定路径
-name指定要查找文件的名字

目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/bin:Binary缩写,存放经常使用的命令
/boot:存放启动linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里
/dev:Device缩写,存放的是linux的外部设备,在linux访问设备的方式和访问文件的方式是相通的
/etc:所有的系统管理所需要的配置文件和子目录
/home:存放普通用户的主目录,在linux中每个用户都有一个自己的目录,一般该目录以用户账号名命名
/lib:系统开机所需要最基本的动态连接共享库,作用类似于windows里的dll文件
/lost+found:这个目录一般是空的,当系统非法关机,这里会存放一些文件
/media:linux自动识别一些设备,例U盘、光驱等,识别后,被识别的设备挂载到该目录
/mnt:用户临时挂载别的文件系统
/opt:给主机额外安装软件所摆放的目录,比如安装一个Oracle,则可以放到该目录,默认该目录是空的
/proc:虚拟目录,是系统内存的映射,可以通过直接访问这个目录获取系统信息
/root:系统管理员目录
/sbin:Super User,存放的是系统管理员使用的系统管理程序
/selinux:Rethat/CentOS所特有的目录,是一种安全机制,类似于防火墙
/srv:service缩写,存放服务启动后需要提取的数据
/sys:安装了2.6内核新出现的一个文件系统sysfs
/tmp:存放临时文件
/usr:用户的很多应用程序和文件都在该目录下,类似于windows中的program files
/var:存放不断扩充的东西,习惯将经常被改动的目录放在该目录下,比如日志文件

文件属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
使用ll或者ls -l查看一个文件的属性以及文件属性所属用户和用户组
例:drwxr-xr-x. 3 muzili muzili 4096 9月 25 06:59 公共
文件类型与权限 链接数 文件属主 文件属组 文件大小 建立或最近修改时间 文件名字
文件类型与权限共十位:第0位文件类型,d代表文件夹;c字符流,装置文件里的串行端口设备,例:鼠标键盘;s Socket;p管道;I链接文档;b设备文件,装置文件里的可供存储的接口设备,其余的三个一组,均为[rwx]组合,三者位置不会变化
1-3确定文件所有者拥有的权限 --user
4-6确定文件所属组拥有的权限 --group
7-9确定其他用户拥有的权限 --other
没有权限,以[-]表示,
作用到文件
r 可读read
w 可写write,不代表可以删除文件,删除一个文件的前提是对该文件所在目录有写权限
x 可执行execute
作用到目录
r:ls可查看目录内容
w:目录内容创建、删除、重命名目录
x:可进入该目录

文件权限类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
chmod
文件:r-查看;w-修改;x-可执行
目录:r-列出目录内容;w-在目录中创建删除;x-进入目录
例:chmod 777 test
777由来:一、计算机二进制表示,1代表可行,0代表不可行
二、drwxrwxrwx,除第一位外,其余的权限位三个一组
假如rwx都有权限,那二进制可以理解为111 111 111,表示的十进制就是7 7 7
同理的设置权限得到二进制对应的十进制即可:000 001 011 101之类的

chgrp 最终目的组 文件或者目录:改变文件或者目录的所属组

chown 最终用户 文件或者目录:改变文件或者目录的所属者
chown 最终用户:用户所属组 文件或者目录:改变文件或者目录的所属者

umask -S:查看创建文件、目录的默认权限
默认规则:
文件是666减去022等于644
十进制 二进制 组值
6 110 rw-
4 100 r--
4 100 r--
目录是777减去022等于755
十进制 二进制 组值
7 111 rwx
5 101 r-x
5 101 r-x

文件目录
http://www.muzili.ren/2022/07/11/文件目录/
作者
jievhaha
发布于
2022年7月11日
许可协议