linux系统结构
- linux是一个倒树结构
- linux中所有的东西都是文件
- 最顶级目录是“/”, 即根目录
- /目录以下为二级目录,这些目录都是系统装机时系统自动建立的
- 二级目录的作用
- /bin ——二进制可执行文件也就是系统命令
- /sbin ——系统管理命令存放位置
- /boot ——启动分区,负责系统启动
- /dev ——设备管理文件
- /etc ——大多数系统管理文件
- /home ——普通用户的家目录
- /lib ——32位系统库文件存放位置
- /lib64 ——64位…
- /media ——系统临时设备挂载点
- /mnt
- /run
- /opt ——第三方软件安装位置
- /proc ——系统信息
- /root ——超级用户家目录
- /srv,/var ——系统数据
- /sys ——系统管理,主要是关于内核的
- /tmp ——系统临时文件存放位置
- /usr ——系统用户相关信息数据及用户自定义软件存放位置
文件
一.文件的寻址
绝对路径——文件在系统的真实位置,文件名字以“/”开头
相对路径——文件相对与当前所在位置的一个名字的简写,这个名字 不会以/开头,而且名字会自动添加pwd显示的值
例如:我现在的位置在/root/Desktop/,在它里面有一个目录red,则red目录的绝对路径是/root/Desktop/red/,相对路径是red/
二.文件的管理
1. touch 修改文件时间戳,我们通常用来建立文件
touch file ——创建文件
2. mkdir 建立目录
mkdir directory ——创建目录
-p ——上级目录不存在自动建立
3. rm 删除目录或文件
rm -f ——强行删除不提示
-r ——删除目录
4. cat | head | tail 查看文件内容
——cat 查看文件的全部内容
——head 查看文件的前几行
——tail 查看文件的后几行
5. vim 文本方式编辑文件
(具体使用见下一篇文章)
6. cd 切换工作目录
cd directory ——切换工作目录到指定目录
cd - ——切换工作目录到之前所在目录
cd ~ ——切换到自己的家目录
cd ~usernmae ——切换到指定用户家目录
cd .. ——进入到当前目录的上级目录
7. ls 列出目录或文件信息
ls ——列出当前目录内容
ls direcory|filename ——列出文件或目录内容
ls -d direcotry ——列出目录本身
ls -l filename|dorectory ——列出文件或目录里面内容的属性
ls -ld directory ——列出目录本身属性
ls -a ——显示目录中的所有内容,包括以”.”开头的隐藏文件
ls -R ——第归显示目录中的内容
8. cp 文件复制
cp是新建文件的过程
cp file file1 file2 … red ——把file file1 file2 复制到 目录red中
cp file test ——建立test文件模板为file
cp -r red blue ——复制目录
9. mv 移动或重命名
相同磁盘的mv是重命名,不同磁盘的mv是复制删除过程
mv file file1 dir ——移动file file1到目录dir中
mv 存在文件 不存在文件 ——重命名文件
mv dir/test . ——把dir中的test移动到当前目录 .代表当前目录
正则表达式
“*” 匹配0到任意字符
“?”匹配单个字符,几个?代表几个字符[[:alpha:]] ###匹配单个字母
[[:lower:]] ###匹配单个小写字母
[[:upper:]] ###匹配单个大写字母
[[:digit:]] ###匹配单个数字
[[:alnum:]] ###匹配单个数字或字母
[[:punct:]] ###匹配单个符号
[[:space:]] ###匹配单个空格
例:假设有如图这样5个文件,文件名中分别有大小写字母,数字,特殊符号,空格。
匹配方式如下所示,用法都相似
{}表示不存在的或者存在的
我们通常在创建文件的时候可能会使用它们,可以一次性创建出大量的文件。
例如:
[]表示存在的
我们通常在删除文件的时候使用它们。
[a-C] ——a、A、b、B、c、C
[a-c] ——a、A、b、B、c[1-3] ——1、2、3
[1456] ——1、4、5、6[^abc]|[!abc] ——除了a并且除了b并且除了c
文件的权限
1.文件属性的查看
ls -l
- | rw-r–r–. | 1 | root | root | 0 | May 19 17:38 | file
1—–2——–3—–4——-5—–6———–7————8
- 1.”-“:文件类型
“-“——普通文件
d ——目录
c ——字符设备
s ——套接字
p ——管道
b——快设备
l ——连接 - 2.”rw-r–r–”:文件读写权限
rw-(所有人的权限)|r–(所有组的权限)|r–(其他人的权限) - 3.”1”:
对文件:文件内容被系统记录的次数
对目录:目录中文件属性的字节数 - 4.”root”:文件所有人
- 5.”root”:文件所有组
- 6.”0”:文件内容的大小
- 7.” May 19 17:38”:文件最后一次被修改的时间
- 8.”file”:文件名字
2.文件普通权限
a.意义
rw- | r– | r–
-u—-g—-o
u:文件所有人对文件可以读写
g:文件组成员对文件可读
o:其他人对文件可读
u优先匹配,g次优先,o当u,g不匹配时匹配
rwx 对文件 对目录 r 可以查看文件中的字符 可以查看目录中文件的信息 w 可以更改文件内字符 可以在目录中添加删除文件 x 可以运行文件内记录的程序动作 可以进入目录中
b.字符方式修改该文件权限
chmod
可以用u|g|o直接进行“+”/“-”r|w|x用来添加相应位置上的权限
例如:file原来的权限是:rw-r–r–
chmod u+x,o-r file ——file用户添加x权限,其他人去掉r权限
c.数字方式修改该文件权限
在linux中
r=4,w=2,x=1
chmod 修改后权限值 file
如:chmod 777 file(777是最大权限)
3.文件所有人所有组的管理
chown username file|dir ——更改文件的所有人
chown username:groupname file|dir ——更改所有人所有组
chown -R username dir ——更改目录本身及里面所有内容的所有人
chgrp -R groupname dir ——更改目录本身及里面所有内容的所有组
4.系统默认权限的设定
从系统存在角度来说,开放权力越大,系统存在意义越高
从系统安全角度来说,开放权力越少,系统安全性越高
所以系统设定新建文件或目录会去掉一些权限
设定方式
umask ——查看系统保留权限默认为022
umask 077 ——修改该系统保留权限为077,此设定为临时设定,只当前shell中生效
永久设定方式:
(if后是普通用户umask;else后是超级用户umask )
vim /etc/bashrc ——shell
vim /etc/profile ——系统
以上两个文件umask设定值必须保持一致
source /etc/bashrc
source /etc/profile
让设定立即生效
5.特殊权限
1.suid(4) ——冒险位
只针对二进制可执行文件,
文件内记录的程序产生的进程的所有人为文件所有人,和进程发起人身份无关设定方式:
chmod u+s file
chmod 4xxx file2.sgid(2) ——强制位
3.sticky (1)——粘制位
t权限:
只针对与目录,当一个目录上有t权限,那么目录中的文件只能被所有人删除
设定方式:
chmod o+t dir
chmod 1777 dir