Linux-Ch02
Linux-Ch02 文件与操作
文件的组织与操作
Linux文件系统的特点
Linux系统中一切事物都是文件,包括常见的普通文件(文本文件、多媒体文件、可执行文件)和特殊文件(硬件、内存、进程)等。
Linux文件系统是一个典型的单根、分层、树形结构,第一级目录称根目录,符号 / 表示。根目录包含文件和子目录,依此递归。
其他特点:
- 文件名严格区分大小写,支持“空格”、“.”、“-”、“_”四种特殊符号
- 字符“.”开始的文件名为隐藏文件,默认不显示
- 目录(文件夹)也是文件
- 后缀名不是文件名称必须的要素,只是方便用户使用
Linux文件系统常见目录说明
| 目录名称 | 意义 |
|---|---|
| /bin | 可执行二进制文件 |
| /boot | 引导目录,引导系统所需要的文件 |
| /etc | 系统配置文件 |
| /home | 家目录,每个普通用户的家目录,如/home/starlightglimmer |
| /root | 超级管理员的家目录 |
| /sbin | 超级管理员权限的可执行文件 |
| /usr | Unix Software Resource,软件安装目录 |
| /var | 内容变动频繁的文件,如日志文件 |
| /usr/bin | 绝大部分的用户使用命令 |
| /usr/sbin | 用户自行安装的系统级别软件 |
| /var/log | 日志文件 |
文件相关操作
-
pwd,显示当前工作目录
1
2pwd [-P]
-P 代表当前目录显示当前路径,而非使用链接(link)路径,注意大写 -
ls,列出文件和目录
1
ls [-aAdFhlrSt]
选项 长选项 描述 -a –all 列出所有文件和目录,包括隐藏文件 -d –directory 列出指定目录自身信息,常与-l结合 -F –classify 所列出内容上加上类型符号 -h –human-readable 以更可读的方式显示内容,常与-l结合 -l 长格式显示内容 -r –reverse 以默认方式的逆序显示结果 -S 按文件大小排序 -t 按修改时间排序
权限字符串 链接数 所有者 所在群 文件大小 最后修改时间 文件名
-
cd,切换目录
-
du,显示目录包含文件的大小
参数 效果 -h 以K、M、G方式显示大小 -a 显示文件和目录大小(默认只显示目录) -s 显示总计大小 -
cat,一次性显示文件内容
1
cat 文件名
-
less分页显示文件内容
1
less 文件名
常用快捷键:
- 空格:向下翻一屏
- 回车:向下翻一行
- b:后退一页
- y:后退一行
- q:退出less命令
- =:显示目前内容在文件的位置
- /:进入搜索模式
-
其他显示文件内容命令
命令 效果 tac 逆序显示文件内容 more 类似less,交互弗如less head -n 数字 文件名 显示文件前n行,默认n=10 tail -n 数字 文件名 显示文件最后n行,默认n=10 od 以进制方式显示内容 -
touch:新建一个空白文件
本意是修改文件的最后修改时间,但文件不存在会新建文件
1
touch test_file
文件的三个时间属性:
- mtime:文件内容更改时就会修改该时间
- ctime:文件属性(状态)更改时就会修改该时间
- atime:文件内容被访问时就会修改该时间
-
mkdir:创建目录
1
mkdir [-mp] 目录名称
-m:创建目录时指定权限,直接设置,不考虑默认权限
-p:将所需目录递归创建
-
cp:拷贝文件
1
cp [参数] 源文件 目标文件
参数:
- -a:相当于-dpr
- -d:若源文件为链接文件,则复制链接文件而不是文件本身
- -i:若目标文件已经存在,覆盖时会询问
- -p:连同文件属性一起复制而不是使用默认属性
- -r:递归持续复制
-
rm:删除文件
1
rm [-参数] 文件或目录
参数:
- -f:强制删除
- -i:互动模式,删除前会询问
- -r:递归删除
文件搜索和查找
-
命令查找which
参数:-a:如果有多个,全部列出
-
范围内查找whereis
参数:
- -b:只查找二进制文件
- -l:列出查找的目录范围
- -m:只在man命令对应的目录下查找
- -s:只查找source源文件
- -u:查找不在-b、-m、-s范围内的文件
-
索引查询locate
1
locate [-iclSr] 关键字
参数:
- -i:忽略大小写
- -c:不输出文件名,输出文件数
- -l:输出结果的行数
- -S:输出索引数据库的相关信息
- -r:支持正则表达式
-
通用查找find
1
find [PATH][option][action]
用户和权限
Linux用户和用户组
根据与文件的关系,将用户分为:所有者(User),使用者;使用者又分为:组内用户(Group)和其他用户(Other)
用户必须隶属于一个或多个组
系统对这三种用户规定能进行的操作和行为
用户相关文件:
| 功能 | 文件 |
|---|---|
| 用户账号信息 | /etc/passwd |
| 用户密码信息 | /etc/shadow |
| 组账号信息 | /etc/group |
| 组管理以及密码信息 | /etc/gshadow |
-
账号管理:新增账号useradd
1
useradd [-u][-gG][-d][-s][-r]用户名
参数:
- -u:指定账号UID
- -g:指定账号初始用户组
- -G:指定账号有效用户组
- -s:指定账号的shell
- -r:创建系统账户
-
密码管理:passwd
-
切换用户:su
1
su [-][-c][用户名]
参数:
- 无:只切换用户,不切换新用户的环境(shell、变量等)
- -:切换用户同时切换环境
- -c:只执行-c后的命令时切换用户,之后切换回原用户
-
切换用户身份执行:sudo
1
2sudo [-u][用户名]
默认只有root用户才能执行参数:
- -u:指定想切换的用户名,默认为root
文件权限
| 字段 | 含义 |
|---|---|
| -rw-rw-r– | 文件类型和权限字符串,10个字符,第一个拿掉,剩下9个每3个一组分别表示U\G\O的权限 |
| 1 | 链接数 |
| starlightglimmer | 文件所属用户名 |
| starlightglimmer | 文件所属组名 |
| 10663778 | 字节数表示大小,若使用-h可以看到K、M、G的表示 |
| jun 20 00:41 | 最后一次修改时间 |
| apache- | 文件名 |
第一个字符表示文件类型:
- d:目录
- -:文件
- l:链接文件
- b:面向块的文件,一般式供储存的接口设备
- c:面向字符的设备文件:如键盘鼠标
file命令确定文件具体类型:
Linux使用UGO模型进行权限管理:
- U:所有者
- G:所有者所在用户组
- O:其他用户
权限字符:
- r:读
- w:写
- x:执行
- rwx,三个一组,一般用8进制表示,如:4 -> 100 -> r–;711表示rwxr–r–
权限修改:chmod
-
使用数字:
1
chmod 数字形式 文件名
-
使用字符:
1
chmod [对象][动作][权限] 文件名
对象 动作 权限 u +(增加) r g -(去除) w o =(设置) x a(所有人)
针对文件(非目录)权限的意义:
- r:可以读取文件的实际内容,如文本文件的文字
- w:可以编辑、新增或修改内容(不含删除文件)
- x:可以被系统执行
针对目录权限的意义:
- r:有读取目录的权限,可以用ls命令查询该目录下的文件信息
- w:有更改目录结构列表的权限,如新建文件、删除文件、转移文件、重命名文件等
- x:是否能进入该目录
Linux文件是否可以执行不由文件后缀名决定,由权限的x属性决定
一个文件内存有多大,需要其父目录的r权限
目录一般需要x权限




