一、文件目录
在Linux中,一切皆文件。
文件系统层次结构标准(Filesystem Hierarchy Standard,FHS)
1、FHS的由来
Linux和Unix都是以“
/
”为根的阶层式的树状文件结构,/
因此被称为根目录,所有的文件和目录都在根目录之下,根目录/
下面有/bin
,/home
,/usr
等子目录。在早期的UNIX系统中,各个厂家各自定义了自己的UNIX系统的文件系统构成,比较混乱。为了避免在Linux也产生同样的问题,在Linux面世不久,就开始了对Linux文件系统进行标准化的活动,于1994年推出了名为FSSTND(Filesystem Standard)的Linux文件系统层次结构标准。之后,FSSTND标准吸引了UNIX社团的开发人员,他们把FSSTND扩大到UNIX系 统,FSSTND就变为FHS (Filesystem Hierarchy Standard)。
2、FHS标准定义的内容
-
定义了文件系统中每个区域的用途。
-
定义了所需要的最小构成的目录和文件。
3、FHS规范
- 第一层是,
/
下面的各个目录应该要放什么文件数据,例如/etc
应该要放置设置文件,/bin
与/sbin
则应该要放置可执行文件等等。 - 第二层是针对
/usr
及/var
这两个目录的子目录来定义。例如/var/log
放置系统登录文件、/usr/share
放置共享数据等等。
4、四种类型
-
可分享的(shareable)
可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据,是能够分享给网络上其他主机挂载用的目录。
-
不可分享的(unshareable)
自己机器上面运行的设备文件或者是与程序有关的 socket 文件等,由于仅与自身机器有关,所以不适合分享给其他主机。
-
不变的(static)
有些数据是不会经常变动的,只会随着系统版本而变动。例如函数库、说明文件、系统管理员所管理的主机服务配置文件等。
-
可变动的(variable)
经常改变的数据,例如登录文件、用户文件等。
5、FHS具体内容
目录 | 全称 | 说明 |
---|---|---|
/bin |
binaray | 可执行文件目录 |
/boot |
开机文件目录 | |
/dev |
deivce | 驱动设备文件 |
/etc |
etcetrea | 配置文件目录 |
/home |
用户主目录(家目录) | |
/lib |
library | 系统函数库 |
/media |
媒体设备暂挂区 | |
/mnt |
mount | 额外设备暂挂区 |
/opt |
optional application software package | 第三方软件安装目录 |
/root |
管理员主目录 | |
/sbin |
system binary | 重要系统执行文件 |
/tmp |
temporary | 临时文件存放目录 |
/lost+found |
丢失内容修复目录 | |
/proc |
虚拟文件系统目录 | |
/sys |
虚拟文件系统目录 | |
/usr |
unix system resource | 系统软件资源目录 |
/var |
variable | 常态可变动文件目录 |
Linux发行版文件目录
1、阿里云CentOS
二、常用命令
格式
command [argument]... [option]...
- 中括号
[]
代表是可选的。- 尖括号
<>
代表是需要替换的。- 省略号
...
代表不定长参数(参数或选项的个数是不定的)。
-
有些命令不需要选项也不需要参数,但有的命令在运行时需要多个选项或参数。
-
可以通过命令追加长选项
help
以查看该命令的用法及其各选项的说明,比如ls --help
。 -
有些命令的短选项可以组合,比如
-l -h
可以组合为-lh
。 -
有些命令的短选项可以不带
-
,这通常叫作BSD风格的选项,比如ps aux
。 -
有些命令的短选项要带本身的参数,比如
-L 512M
。 -
有些命令的长选项如果需要参数,通常需要
=
连接,比如--size=1G
。
文件管理
cat
(concatenate)
在终端设备上显示文件内容
cat <文件名> [选项]...
常用选项 | 说明 |
---|---|
-n |
显示行号 |
cp
(copy file)
复制文件或目录
cp <source> <dest> [选项]...
常用选项 | 说明 |
---|---|
-f 、--force |
强制覆盖 |
-r 、-R 、--recursive |
递归复制 |
mv
(move file)
移动或重命名目录,dest 目录不存在时解析为重命名
mv <source> <dest> [选项]...
常用选项 | 说明 |
---|---|
-f 、--force |
覆盖已有文件时,不进行任何提示 |
mkdir
(make directory)
创建目录
mkdir <目录名> [选项]...
常用选项 | 说明 |
---|---|
-p 、--parents |
创建多级目录 |
pwd
(print work directory)
显示工作路径
pwd [选项]...
常用选项 | 说明 |
---|---|
-L |
默认,打印逻辑路径 |
-P (physical) |
打印物理路径 |
touch
创建空文件
touch <文件名>
rm
(remove file)
删除文件
rm <文件名>... [选项]...
常用选项 | 说明 |
---|---|
-f 、--force |
忽略不存在的文件,不会出现警告信息 |
-r 、-R 、--recursive |
递归删除 |
rmdir
(remove directory)
删除空目录
rmdir <目录名> [选项]...
文档编辑
head
head <文件名> [-<指定行数>]
tail
tail <文件名> [-<指定行数>]
磁盘管理
cd
(change directory)
切换目录
cd <目录名> [选项]...
df
(disk free)
显示磁盘使用情况
df [文件名] [选项]...
常用选项 | 说明 |
---|---|
-a 、--all |
显示全部 |
-h 、--human-readable |
以容易阅读的形式显示 |
-T |
显示文件系统类型 |
ls
(list)
ls [目录名] [选项]...
常用选项 | 说明 |
---|---|
-a 、--all |
全部列出 |
-l (long) |
以长格式显示 |
-S |
按字典排序 |
网络通讯
ping
ping <IP> [选项]...
netstat
(network status)
ifconfig
系统管理
halt
关机
kill
kill <进程号PID>
ps
(process status)
常用选项 | 说明 |
---|---|
-aux |
显示所有包含其他使用者的进程 |
reboot
重启
shutdown
常用选项 | 说明 |
---|---|
-t <seconds> |
seconds 秒后关机 |
-c |
取消目前已经在进行中的关机动作 |
su
(swith user)
su <用户名>
sudo
(superuser do)
sudo <命令>
系统设置
clear
控制台翻页
备份压缩
zip
zip <.zip包名> <文件名>...
unzip
unzip <.zip包名> [-d <指定目录>]...
tar
压缩
tar -cvf <.tar包名> <文件名>...
tar -zcvf <.tar.gz包名> <文件名>...
解压
tar -xvf <.tar包名> [-C <指定目录>]
tar -zxvf <.tar.gz包名> [-C <指定目录>]
其它
history
常用选项 | 说明 |
---|---|
-c |
清空当前历史命令列表 |
三、用户和用户组
主组和附加组
用户和组是多对多的关系,但是每个用户有且只有一个主组(基本组、初始组),另外的为了方便权限管理的组被称为附加组。
配置文件
1、/etc/passwd
Linux系统中的
/etc/passwd
文件,是系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作。
格式为:
<用户名>:<密码>:<UID>:<GID>:<描述性信息>:<主目录>:<默认Shell>
2、/etc/passed
/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。
格式为:
<用户名>:<密码>:<最后一次修改时间>:<最小修改时间间隔>:<密码有效期>:<密码需要变更前的警告天数>:<密码过期后的宽限时间>:<账号失效时间>:<保留字段>
3、/etc/group
/ect/group
文件是用户组配置文件,即用户组的所有信息都存放在此文件中。
格式为:
<组名>:<密码>:<GID>:<该用户组中的用户列表>
不过,用户设置密码是为了验证用户的身份,那用户组设置密码是用来做什么的呢?
用户组密码主要是用来指定组管理员的。
由于系统中的账号可能会非常多,root 用户可能没有时间进行用户的组调整,这时可以给用户组指定组管理员,如果有用户需要加入或退出某用户组,可以由该组的组管理员替代 root 进行管理。
但是这项功能目前很少使用,我们也很少设置组密码。如果需要赋予某用户调整某个用户组的权限,则可以使用 sudo 命令代替。
4、/etc/gshadow
格式为:
<组名>:<密码>:<组管理员>:<组附加用户列表>
对用户的常用操作
1、添加用户
useradd <用户名> [选项]...
常用选项 | 说明 |
---|---|
-g <组名> |
指定初始组 |
-u <UID> |
指定UID |
-d <主目录名> |
指定主目录 |
-r |
创建系统用户 ( 由于系统用户主要用于运行系统所需服务的权限配置,因此系统用户的创建默认不会创建主目录 ) |
如果不指定组名,添加用户时会新建一个与用户名同名的组,并将该组设为该用户的初始组。
2、修改用户密码
passwd <用户名> [选项]...
3、修改用户信息
usermod <用户名> [选项]...
常用选项 | 说明 |
---|---|
-d |
修改家目录 |
-u <UID> |
修改UID |
-g <组名> |
修改初始组 |
-G <组名>... |
修改附加组 |
4、删除用户
userdel <用户名> [选项]...
常用选项 | 说明 |
---|---|
-r |
在删除用户的同时删除用户的家目录 |
对用户组的常用操作
1、添加用户组
groupadd <组名> [选项]
常用选项 | 说明 |
---|---|
-g <GID> |
指定GID |
-r |
创建系统组 |
2、修改用户组
groupmod <组名> [选项]...
常用选项 | 说明 |
---|---|
-g <GID> |
修改GID |
-n <新组名> |
修改组名 |
3、删除用户组
groupdel <组名>
如果群主还是某用户的初始群组,则无法使用groupdel
命令成功删除。
4、添加、移除组
gpasswd <组名> [选项]...
常用选项 | 说明 |
---|---|
-a <用户名> |
将用户加入到群组中 |
-d <用户名> |
将用户从群组中移除 |
四、权限管理
传统权限控制方式
Linux 传统的权限控制方式与ACL(Access Control List)和RBAC(Role Based Access Control)不太一样。
1、三种身份
-
所有者
-
所属群组
-
其它用户
2、三种权限
-
读(read,r=4):对文件而言,具有读取文件内容的去权限;对目录来说,具有浏览目录信息的权限。
-
写(write,w=2):对文件而言,具有新增、修改文件内容如果的权限;对目录来说,具有新建、修改、移动、删除目录内文件的权限。
-
执行(execute,x=1):对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
3、格式
常用操作
1、修改所有者和所属组
chown <所有者>[:<所属组>] <文件名> [选项]...
常用选项 | 说明 |
---|---|
-R |
递归处理 |
2、修改文件所属组
chgrp <所属组> <文件名> [选项]...
常用选项 | 说明 |
---|---|
-R |
递归处理 |
3、修改文件权限
chmod <权限值> <文件名> [选项]...
文件的基本权限由9个字符组成。权限值 = 各身份的权限和的拼接(r = 4、w = 2、x = 1)。
例如
rwxr-xr-x
的权限值为 755,对应的命令为chmod 755 <文件名>
- 所有者的权限和 = 4 + 2 + 1 = 7
- 所属组的权限和 = 4 + 1 = 5
- 其他人的权限为 = 4 + 1 = 5
常用选项 | 说明 |
---|---|
-R |
递归处理 |