1 用户和组
linux创建用户的时候,
默认的情况下会给我们创建一个用户组(名称与用户名相同,该组只有一个用户)。
linux中要对用户按照某种策略进行分组管理,就像学校要对学生进行分班管理一样。
2 文件类型
linux下,常见的三种文件类型
文件,表示方式 -
目录,类似于Windows中的文件夹,表示方式,d
链接,类似于Windows中的快捷方式,表示方式,l
linux把以上三种都统称为文件
3 文件详情的解读
[root@localhost ~]# ls -al
总用量 24
dr-xr-x---. 2 root root 114 3月 2 13:02 .
dr-xr-xr-x. 17 root root 224 3月 2 13:01 ..
-rw-------. 1 root root 1361 3月 2 13:02 anaconda-ks.cfg
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
ls -al是综合了-a 和 -l,表示显示当前目录中的文件,
包括隐藏文件,同时显示详情信息。
dr-xr-x---. 2 root root 114 3月 2 13:02 .
(1)文件类型及权限
权限分类
可读 r 可以用cat命令去读
可写 w 可以用vi命令去写
可执行(脚本,比如shell脚本) x
特殊字符 - 表示没有权限,如果同时有上面的三种权限,
那么应该是rwx,如果某个权限没有,就用-代替
权限的数字表示方式
dr-xr-xr-x的意义,
d表示目录(这个位置的字母说明文件类型)
r-xr-xr-x分为三组,表示此文件针对不同用户的权限
因为对应三个对象不同权限
拥有者:r-x
所属组:r-x
其他人:r-x
对于超级管理员用户,则什么都能干,拥有任何权限
文件权限的数字表示
R W X
2^2 2^1 2^0
4 2 1
数字表示: - rw- rw- r--- # 664
6=4+2 6=4+2 4=4
6表示 读+写,7表示 读+写+执行,5表示 读+执行
(2)文件的硬链接数量
2
(3)文件的拥有者及其所在组
root root
第一个字符串表示文件的拥有者 root
第二个字符串表示的是文件所属的组 root
(因为默认情况下,新建用户同时给用户建立一个组,组名与用户名相同)
(4)文件大小(byte)
114
(5)文件的保存时间
3月 2 13:02
(6)文件名字
.:表示当前目录
上面六部分中,最重要的是(1)和(3),
即要能看懂文件的类型及权限,文件的拥有者即所在组
4 权限修改
(1)文件的归属
拥有者 owner u
属于组 group g
其他人 other o
(2)为某类用户修改权限
必须先切换到root用户状态下
[root@localhost ~]# ls -l
总用量 8
-rw-------. 1 root root 1361 3月 2 13:02 anaconda-ks.cfg
-rw-r--r--. 1 root root 377 3月 4 16:42 fapiao.txt
以fapiao.txt这个文件为例,介绍 chmod 的用法
为同组用户增加写的的权限
[root@localhost ~]# chmod g+w fapiao.txt
[root@localhost ~]# ls -l
总用量 8
-rw-------. 1 root root 1361 3月 2 13:02 anaconda-ks.cfg
-rw-rw-r--. 1 root root 377 3月 4 16:42 fapiao.txt
让其他用户即不能读,也不能写
[root@localhost ~]# chmod o-r fapiao.txt
[root@localhost ~]# ls -l
总用量 8
-rw-------. 1 root root 1361 3月 2 13:02 anaconda-ks.cfg
-rw-rw----. 1 root root 377 3月 4 16:42 fapiao.txt
用法:chmod 用户(u/g/o)+/-权限 文件,
加号(+)表示增加权限,减号(-)表示取消权限
(3)为所有类型的用户修改权限
[root@localhost ~]# ls -l
总用量 8
-rw-------. 1 root root 1361 3月 2 13:02 anaconda-ks.cfg
-rw-rw-r--. 1 root root 377 3月 4 16:42 fapiao.txt
[root@localhost ~]# chmod 666 fapiao.txt
[root@localhost ~]# ls -l
总用量 8
-rw-------. 1 root root 1361 3月 2 13:02 anaconda-ks.cfg
-rw-rw-rw-. 1 root root 377 3月 4 16:42 fapiao.txt
chmod 666 fapiao.txt
中间的666,第一个6表示设置拥有者的权限为“读+写”,
第二个表示为同组用户,第三个表示为其他用户
可以先添加两个用户,然后在root用户状态下修改文件的权限,切换用户,
尝试使用cat和vi命令访问文件
5 改变文件的拥有者及所属组
chown 改变文件的拥有者 chown 新的拥有者 文件名
chgrp 改变文件的所属组 chgrp 新的组名 文件名
上面两种命令都需要在root用户状态下完成。
如果要同时改变拥有者和所属组,可以用一条命令完成:
chown 新的拥有者:新的组名 文件名
6 对一个包含文件的目录进行操作
加 -R,即递归,表示对目录中的文件,进行同样的权限设置,适用于chmod、chown、chgrp
7 文件的拷贝
cp source(源,文件名) dest(目标,可以是文件名,也可以是目录)
拷贝一个文件到另一个目录中去
cp 文件名 目的地址(目录) 普通用户不能拷贝到超级用户的目录下面。
拷贝一个文件的内容到另一个文件中去
cp 文件1 文件2 将文件1的内容拷贝到文件2中去,文件2中原来的内容将被删除
8 文件的创建
(1)使用touch命令
touch test.data linux中,将文件的后缀也当成文件名的一部分
(2)使用vi/vim命令
vi test.txt 编辑文件,如果test.txt不存在,那么就先新建,再打开
vim的功能与vi相同
9 追加文件内容
echo 变量 将变量在屏幕中显示出来
echo "xxxx" >> test.txt 在test.txt的最后面追加一行"xxxx"
10 查看文件内容的几种常见方式
cat 全部查看,适合文件内容比较少
more 翻页查看,适合文件内容比较多,more+要查看的文件内容
tail 查看文件末尾的内容,通常与-f参数连用,适合于查看服务器实时动态日志信息
tail -f xxx.log
tail -200f yyy.log 查看文件的最后两百行
head 查看开头,适合于查看文件的模板样式、头文件信息等
11 目录
创建目录
mkdir 目录名 创建之后,使用ls查看,会发现目录的颜色与文件不一样
mkdir -p ./目录1/目录2/目录3
创建多级目录,目录1,目录2,目录3都不需要事先存在
拷贝目录
cp -r 目录1 目录2 将目录1及其下面的文件,都拷贝到目录2中
12 文件的移动或重命名
重命名
mv 文件或目录原名 新名 注意,新名必须不存在
移动
mv 文件或目录名 新地址
mv k ../ 将目录k移动到上级目录
13 文件的删除
rm 文件名 删除文件
rm -rf src(文件或文件夹名)
因为-f是强制删除的意思,因此src最好是绝对路径,这样就能减少误删
-r表示递归
以上两种命令需要掌握
* rmdir 目录名 注意删除的目录必须为空目录,否则报错
14 关于链接
软链接 soft link
硬链接 hard link
两种链接的区别在于,删除源文件的时候,硬链接还能找到源文件,软链接不能
软链接保存了其代表的文件的绝对路径,是另外一种文件,
在硬盘上有独立的区块,访问时替换自身路径。
创建硬链接
ln 文件或目录 链接的名称
创建软链接(加参数-s)
ln -s 文件或目录 链接的名称
创建后用 ls -l查看,会发现软链接颜色不一样,
且对源文件有个指向的关系,但硬链接没有这两个属性。
编辑链接,就相当于编辑文件
k与s都是深蓝色,表示目录,soft_a.txt是软链接,是浅蓝色,软链接颜色不一样,有明确的指向关系,hard_b.txt是硬链接,没有指向关系,不变色。
文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。
用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;
而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。
在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不 包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。 文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确 的文件数据块。
可以简单把inode想成 C 语言中的指针,它指向了物理硬盘的一个区块,事实 上文件系统会维护一个引用计数,只要有文件指向这个区块,它就不会从硬盘 上消失。
可以通过 ls -li 查看文件的inode,结果的第一列就是inode
硬链接与源文件具有相同的 inode,当删除源文件时,由于硬链接还保存着相同的inode,所以磁盘上的这个区块仍然有效。
hard_b.txt是b.txt的硬链接,有相同的inode,soft_a.txt是a.txt的软链接,inode不同
软链接与源文件的inode不同,软链接的 inode 所指向的内容实际上是保存了一个绝对路径,当用户访问这个文件时,系统会自动将其替换成其所指的文件路径。即软链接所指向的内容,保存的是源文件的物理地址,当源文件被删除,自然软链接也无法找到该的文件。
15 文件的搜索
find 目录 -name 文件名
在指定目录下搜索,如果有的话,就显示文件名(带路径),如果没有,则什
么都不显示
模糊搜索
find 目录 -name read\*
搜索以“read”开头的文件,反斜杠\表示转义字符
16 查看帮助
man 要查看的命令
输入前面若干个字符,按Tab键自动补齐