Linux基础学习 | 目录及文件
一、目录结构
Linux目录采用树形结构,以根目录/
向下延伸呈一个倒置的树的形状。
每个目录下都有其相对应的子目录,而子目录中又有其子目录的存在,就像一棵树的树枝分叉,所有的目录层次结构分明,每个目录也都有其相对用的作用。可以通过在shell中输入ls
命令查看目录及文件,其中每个目录下都有两个特别的目录.
和 ..
目录,分别表示 当前目录 和 上层目录,可以通过ls -l
命令查看。
各目录简述解释,详情参考菜鸟教程
/boot:与内核、启动有关的文件
/bin: 存放命令、或者可执行程序
/dev: 存放设备文件
/etc: 系统配置文件
/lib: 库文件
/mnt: 临时挂载点
/proc:虚拟目录,对内存中的信息映射到该目录下
/root: 管理员的家目录
/home:普通用户的家目录
/usr: 系统运行过程中不经常改变的文件
/var: 系统运行过程中常改变的文件
/tmp: 临时目录,所有用户都可以访问
相关命令
cd |
切换目录(Change Directory) |
---|---|
cd … | 回到上一层目录 |
cd 路径 | 进入该目录(可以是相对路径,也可以是绝对路径) |
cd ~ | 进入家目录,即home/ 下与用户名同名的目录 |
cd - | 在最近使用过的两个路径切换 |
其他命令 | 解释 |
---|---|
pwd | 显示当前位置(Print work diretory) |
mkdir | 创建目录(Make Directory) |
rmdir | 删除空目录(Remove directory) |
rm -r | (-R, --recursive)递归删除,用于删除非空目录 |
rm -rf | ( -f, --force)忽略不存在的文件,从不给出提示,常与-rf 配合删除目录 |
二、文件
在Linux下有一切皆文件的说法。在Linux平台下针对不同的文件主要有以下分类。
- 普通文件用
-
表示 - 目录文件用
d
表示 - 链接文件用
l
表示 - 设备文件用
c\d
表示 - 管道文件用
p
表示 - 套接字文件用
s
表示
可以通过在bash
命令解释器中输入ls -l
命令查看
测试:如下图所示,在blog
目录下打开bash
命令解释器,依次输入
touch a.txt
创建普通文件mkdir tmp
创建目录ln -s ~/Desktop/code ./code_tmp
创建软连接mkfifo 1.pipe
创建管道文件
输入ls -l
命令查看文件属性
文件属性
使用ls -l
可以查看文件的详细参数
文件权限
其中权限部分又分为属主权限、属组权限、和其他人权限。
因为Linux平台支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响,同时为了互相协同工作的需要,因此Linux下文件根据用户的不同划分了以三种。
- 属主
u
:文件的主人 - 属组
g
:同组人 - 其他
o
:其他用户
权限主要分为一下几类
- 读权限
r
,可以用数字4
表示 - 写权限
w
,可以用数字2
表示 - 执行权限
x
,可以用数字1
表示 - -没有权限,可以用数字
0
表示
特殊权限
SUID
权限
文件在执行阶段具有文件所有者的权限
在/bin
目录下的passwd
命令就具有该权限,因此普通用户可以执行该命令修改自己的密码。
我们可以看到该权限占据了写权限的位置,因此用S
表示具有该权限的同时还具有x
权限,s
则表示不具备x
权限
SGID
权限
文件在执行阶段具有文件同组人的权限
如下图,我们在tmp
中用root用户创建一个1.c
文件,可以看到文件的属主和属组都是root所拥有的。
接下来我们返回上层目录在tr用户下设置tmp
属组的权限为s
权限,再次进入tmp
目录用root用户创建2.c
文件,可以看到这次文件的属组变成了我们的普通用户tr
所有。
我们在tr用户下把tmp
目录加上了s
权限,当其他用户 在tmp
目录下创建文件时都会把文件属性设置为该目录的属组属性。
设置权限
使用chmod
命令可以设置文件权限。一般分两种设定法
- 文字设定法
- eg:
chmod u+x a.c
给a.c文件属主增加执行权限 - eg:
chmod g-w a.c
给a.c文件属组取消写权限 - eg:
chmod a-w a.c
给a.c文件所有用户取消写权限
- eg:
- 数字设定法
- eg:
chmod 746 a.c
给a.c文件的属主设置”读“”写“”执行“权限,属组设置”读“权限,其他用户设置”读“”写“权限
- eg:
相关命令:
文件操作命令 | 解释 |
---|---|
touch | 创建或者修改文件 |
rm | 删除文件或者目录 |
tree | 命令可以以树状图列出文件目录结果 |
cp | 复制文件或者目录 |
mv | 移动文件/目录或者重命名 |
查看文本命令 | 解释(具体信息请使用man帮助手册查看) |
---|---|
cat | 查看文件内容,cat 文件名 |
more | 同上,more 文件名 |
less | 同上,less 文本名 |
head | 查看文本开头信息,head 文件名 |
tail | 查看文本尾部信息 tail 文件名 |
echo | 在终端显示指定内容,可以用> < 等重定向命令改变输出为止 |