时间:2019-01-26 11:39:32
用户和文件系统¶
Linux 分为两种用户超级管理员(root)和普通用户,超级管理员拥有系统的一切权限,其它用户则拥有分配的权限。
文件或目录会有所属者和所属分组这两个属性,在Linux中文件系统的权限分为三维度, 拥有着、所属组和其它用户,每个维度细分为 读写执行 [rwx] (421),拥有相应权限才能执行对应的操作。
单一文件或目录的最大容许文件名为 255Bytes,以一个 ASCII 英文占用一个 Bytes 来说,则大约可达 255 个字符长度。若是以每个中文字占用 2Bytes 来说, 最大文件名就是大约在 128 个中文字文字。
用户¶
每个用户可以属于多个群组,创建用户时如果不指定所属组,则会默认创意一个和用户名相同的用户组。当用户属于多个组时,只有有效组的权限才会起作用。
相关命令¶
-
useradd:添加用户,不指定用户组则默认创意一个和用户名字相同的群组。shell useradd -g group_name user_name # 指定用户分组 useradd -u number(>1000) user_name # 指定用户Id(UID) useradd -r user_name # 创建系统用户 useradd -D # 查看命令默认值 -
usermod:修改用户信息shell usermod -c "账号说明" user_name usermod ‐g groupname username usermod -l new_name old_name -
userdel:删除用户。shell userdel -r user_name 同时删除用户主目录*password: 修改或设置用户密码shell passwd xiaotian -
id:查看用户ID和用户的组ID信息shell id user_name -
groups: 查看用户所属分组,第一个是有效组。 -
groupadd:添加分组shell groupadd group_name groupadd -g gid group_name -
groupmod:变更分组信息shell groupmod [-g gid] [-n group_name] 群组名 -
groupdel:删除分组shell groupdel group_name -
newgrp: 变更用户的有效组,操作完成之后 exit 切换回原来有效组。shell newgrp group_name -
用户添加到指定分组
```shell
添加用户¶
gpasswd -a user_name group_name
删除用户¶
gpasswd -d user_name group_name ``` * 普通用户密码切换到root用户
```shell
替换文件内容¶
root$ visudo User_Alias ADMINS = xiaotian, xiaotian2 ADMINS ALL=(root) /bin/su - xiaotian$ sudo su - ```
文件系统¶
文件的三个时间:
- 访问时间:读取文件内容会更新该时间。
- 状态时间:文件的状态变更之后会更新该时间。
- 变更时间:文章内容变更会更新该时间。
文件的所属者的权限:
- 拥有者:创建文件的人的权限。
- 组:属于组里面的人的权限。
- 其它:非组里面人的权限
文件属性:
d目录-正规文件l链接文件b设备文件里面的可供储存的周边设备(可随机存取设备)。c设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。ssocket 文件,用于网络数据通信。p数据输送文件(FIFO, pipe),FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题。
权限属性:
-
文件:
- 读:读取文件内容
- 写:写数据到文件
- 执行:执行文件
-
目录:
- 读:可以读取目录下文件的列表等
- 写:
- 再该目录下创建新文件和目录
- 删除该目录下已经存在的文件和目录,和对文件拥有的权限没有关系。
- 重命名该目录下的文件和目录
- 移动该目录下的文件和目录
- 执行:
- 能否进入该文件。
常用命令:¶
-
ls (list directory contents):列出目录里的内容。
shell ls -a 显示所有文件包含隐藏文件 ls -A 显示所有文件包含隐藏文件,不显示 . 和 .. ls -l 文件详细属性 ls -h 易读方式 ls -d 当前目录的属性 ls -S 文件大小排序 ls -t 时间排序 ls --full-time 显示完整时间 -
cd (change directory): 切换目录。
shell cd . cd .. # 切换到上一个工作目录 cd - cd ~ cd ~ user_name -
pwd(print workign directory):显示当前目录。
pwd
# 显示链接的目录
pwd -P
-
mkdir(make directory):创建目录。```shell mkdir /home/test/sun/
父目录不存在自动创建父目录,存在的话也不报错¶
mkdir -p /home/test/sun/
指定目录权限¶
mkdir -m 711 /home/test/sun/ ```
-
rmdir(remove directory) 删除空目录。```shell rmdir /home/test/sun/
删除上级空目录¶
rmdir -p /home/test/sun/ ```
-
rm(rmove) 删除文件或文件夹shell rm file_name rm -r directory rm -f file_name -
cp(copy):复制文件。shell cp -r directory cp file directory/ cp -a file direcctory # 同时复制文件创建时间等 cp -l file directory # 文件复制 cp -s file directory # 链接复制 cp -u # 当文件比目标文件新时才复制 -
mv(movie):移动文件。shell mv -f # 强制覆盖不询问 mv -u # 比较时间,当目标价文件比较旧时才复制 mv bashrc1 bashrc2 mvtest2 -
basename: 获取文件名。 dirname:获取路径名。-
cat:(Concatenate)正序输出文件内容shell cat -n # 显示行号 cat -nb # 空白行不计算行数 cat -A # 显示特殊字符 -
tac: 倒着输出文件内容。 less:一页一页显示文件内容,前后翻页more: 一页一页显示文件内容,向后翻页。-
tail: 后几行。shell tail -n number # 显示后number行 tail -n +number # 显示第number行之后的行 -
head:前几行。shell head -n numer # 显示前number行 head -n -number # 显示倒数第numbe行前面的内容 -
od: 以二进制方式浏览文件内容。 -
nl:添加行号打印。shell -b :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n); -b t :如果有空行,空的那一行不要列出行号(默认值); -n :列出行号表示的方法,主要有三种: -n ln :行号在屏幕的最左方显示; -n rn :行号在自己字段的最右方显示,且不加 0 ; -n rz :行号在自己字段的最右方显示,且加 0 ;(005) -w :行号字段的占用的字符数。 -
touch: 修改文件更新时间或创建文件shell touch -a # 修改访问时间 touch -m # 修改变更时间*chgrp:(change group) 改变文件分组shell chgrp xiaotian 123.txt # 改变所属分组为 xiaotian chgrp -R directory # 递归操作,改变文件加下所有文件的所属分组 -
chown:(change owner) 改变文件拥有者shell chown xiaotian 123.txt #改变文件拥有着 chown xiaotain:xiaotian #改变文件所属组和拥有者*chmod:改变文件权限,(rwx 421)。shell chmod -R directory chmod [ugo][+-=][rwx] chmod u=rwx,go=r xiaotian.txt