【Linux】——常用命令和文件权限

一、文件目录


在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 递归处理




五、参考资料


原创文章 41 获赞 34 访问量 3万+

猜你喜欢

转载自blog.csdn.net/XY1790026787/article/details/104227969