操作系统分区原理
1. win系统分区原理
类似:倒着的森林
2. linux系统分区原理
类似:倒着的一个"大树"
3. 根目录文件介绍
1. 内核文件与发行版
Linux操作系统是1991年芬兰 赫尔辛基大学一个大学生 林纳斯.脱瓦斯 发明的一个类Unix操作系统。林纳斯 开发的部分就是操作系统系统的"内核文件"。
发行版:指的是由软件发行公司,把一定的Linux内核版本、应用程序和相应的系统管理软件和安装程序,组装成一个发行套件。
发行版:内核版本文件 + 外围软件(图形化界面、安装程序、办公软件、记事本、编译器、解释器等等)
例如:
Redhat: 内核文件 + 外围软件
CentOS: redhat发行版 + 企业相关软件
发行版本号码,由发行商自己决定,一般与内核版本的数字不一样。
全世界的linux系统的种类有上百种,它们都是linux不同的发行版。
目前Linux中国的发行版本(Linux Distribution)主要有Red Hat(红帽子), Slackware, Caldera, Debian, Red Flag(红旗), Blue Point(蓝点), Xteam Linux(冲浪), Happy Linux(幸福Linux), Xlinux、ubuntu等若干种,推荐同学们使用的发行版本是CentOS,其是对红帽(red hat)封装的企业版。
记住的目录: /home /dev /var /etc /usr
4. 目录操作
目录创建、移动、改名字、复制、删除
1. 相对路径与绝对路径
目录1: /home/jinnan/tianjin/liaoning/dalian/jinzhou我
目录2:/etc/sysconfig/network-script/
jinzhou---->network-scirpt: cd /etc/sysconfig/network-script [绝对路径]推荐
cd ../../../../../../etc/sysconfig/network-scirpt [相对路径]
jinzhou---->dalian : cd ../ [相对路径]推荐
cd /home/jinnan/tianjin/ningliao/dalian [绝对路径]
在linux系统里边到达一个地方或获得一个文件,绝对路径和相对路径做选择性使用。
5. 简单文件操作
文件的查看、创建、追加内容
6. 用户和组的操作
linux系统对用户、组别、被操作的文件有独特的设置:
用户与组别对应、组别与被操作的文件对应(类似权限控制RBAC)
后期系统使用过程中管理员root就只需要关心用户是属于哪个组别的即可
/etc/passwd存储的用户信息:
用户操作指令:
7. 给用户设置密码,使其登录系统
密码需要输入两次
使得geyou用户登录系统:
二. vi编辑器(记事本)
linux系统下普通文件的编辑学习操作。
vim :编辑器中的神
Emacs:神的编辑器
复制一个操作的目标文件:
1. 三种模式
2. 切换到编辑模式
3. 尾行模式操作
上图意图可以强制退出实现 (:q!)
4. 命令模式操作
4.1 光标移动
4.2 内容删除、复制操作
三. 权限操作
权限:用户针对文件是否拥有 读、写、执行 的权利。
权限本身划分为:读Read、写Write、执行eXecute
权限针对用户的划分:主人User、同组用户Group、其他组用户Other
zhoudong 写了一个歌词 双节棍.txt
zhoudong(主人) music组 双节棍.txt 权限:读,写,执行
liming(同组) music组 双节棍.txt 权限:读,写
wangjing(其他组) movie组 双节棍.txt 权限:读
rwxrw-r-- zhoudong music 双节棍.txt
1. 权限的设置
字母方式设置权限:
数字绝对方式设置权限:
数字、字母的取舍使用:
2. 使用权限
2.1 文件对权限的使用
读:是否可以查看文件内容
写:是否可以修改该文件(可以强制写操作)
执行:① 二进制文件 ② 批量指令执行文件(windows批处理文件/linux shell脚本文件)
linux系统里边可以编写shell脚本程序文件,该文件执行过程中可以批量执行指令。(shell文件类似windows系统的批处理程序bat文件)
批处理程序bat文件可以在windows系统批量执行dos相关指令。
shell脚本程序文件在linux系统可以批量执行指令。
制作一个简答shell文件:
2.2 目录对权限的使用
读:是否可以查看该目录内部的文件信息
写:是否可以给该目录创建、删除文件
执行:指定用户是否可以cd进入该目录
总结:
1. vi编辑器
a) 三种模式:命令、编辑、尾行
b) 尾行模式操作
:w :q :wq :w! :q! :wq!
:数字
:/内容/
:set nu / :set nonu
:s/cont1/cont2/
:s/cont1/cont2/g
:%s/cont1/cont2/g
c) 命令模式操作
移动:字符级、单词、行级、段落、屏幕、文档
删除:dd ndd x cw
复制:yy nyy p
2. 权限操作
① 字母方式 rwx ugo
② 数字方式 4读2写1执行
3. 权限针对文件强制操作
对文件没有r或w写权限,还要修改该文件,可以!感叹号强制写保存。
A 对文件没有w写权限,可以强制写保存
B 对文件有w写权限、没有r读权限,强制写保存,新写入内容会覆盖文件原内容。
C 非主人(同组/其他组)用户,没有w写权限,强行写保存(或许成功、或许不成功)
(①该文件的上级目录针对该修改者没有开放w写权限,强行写保存不成功)
(②该文件的上级目录针对该修改者有开放w写权限,强行写保存成功)
强制修改成功后,文件的主人、组别变为修改者的主人、组别。
4. 系统常用指令
硬盘格式化空间单元最小为4k,称为一个block块,
一个文件大小不大于4096个字节,给其分配的空间大小就是1个block块(4k)
五. 管道pipe
变量修饰器/管道:前者的输出是后者的输入参数。
linux的管道与smarty的变量修饰器使用效果一致。
输出的信息与预期信息不符合,需要通过中间介质(其他函数)对信息再进一步处理、过滤优化。
Smarty的变量修饰器:
{$time | date_format:"%Y-%m-%d %H:%M:%S"} //date()
{$title | upper} //strtoupper()
{$content|upper|lower|XXX|YYY} 可以同时使用多个修饰器。
Smarty的变量修饰器比较固定,一共就20多个
linux的管道:
其中的许多指令(grep head tail wc ls等等)都可以当做管道符号使用.
管道使用相比smarty要灵活很多。
> ls -l | wc //计算当前目录一共有多少个文件
>grep sbin passwd | wc //计算passwd文件中出现sbin内容的行数
>ls -l | head -10 //以详细列表形式查看当前目录下前10个文件
>ls | grep apple //在当前目录下查找出现"apple"字样的文件名字
>ls -l | head -20 | tail -5 //查看当前目录中第16-20个文件信息
6. 文件查找find
七. 软链接和硬链接
1. 软链接link
定义:就是windows系统的快捷方式
作用:可以对硬盘空间进行合理分配
具体设置link:
>ln -s 源文件 软链接
ln -s 相对源文件 软链接文件 //源文件 和 软链接文件 处于同级目录
ln -s 绝对路径源文件 软链接文件 //源文件 和 软链接文件 不在一个目录里
软链接文件本身是要占据当前目录空间的,占多少是"指向源文件目录路径长度"决定的
1.1 软链接使用注意
1 设置软链接,源文件最好设置为绝对路径方式
2 普通文件和目录都可以设置软链接
3 源文件 被删除,对应的软链接就变为"无效链接",如果再创建一个同名源文件,软链接又恢复为有效链接文件。
2. 硬链接
定义:系统里边文件的名称(引用)就是硬链接。
给文件增加名称(引用)的过程就是创建"硬链接"过程
(一个文件可以有多个名字,它们都是同一个文件实体的硬链接)
(类似php程序面向对象中的 对象 与 对象实体的关系)
同一个文件实体可以创建多个文件名字,他们都是"硬链接",好处是即使删除其中的一个名字,也可以保证文件实体被垃圾回收机制给收走。
操作:
> ln [-d] 源文件 硬链接
源文件:直接通过相对路径定位即可
硬链接文件:与源文件是否同级目录都可以
jilin目录硬链接数目是三个的来源:
① 本身jilin名字
② jilin/.点 是一个
③ jilin/changchun/..点点 是一个
2.1 硬链接使用注意:
1 设置硬链接的时候,源文件不需要使用绝对路径
2 只有普通文件可以设置硬链接,目录不可以
3 同一个源文件的所有硬链接文件必须 在同一个硬盘、同一个分区里边
2.2使用硬链接的好处
① 防止重要的文件被误删除
② 如果有多人需要操作同一个文件(体积较大),就给他们创建许多硬链接即可。
(比较大的文件在服务器可以只存储一份,大家各自使用对应的硬链接即可)
3. 软链接和硬链接异同
不同点:
软链接是快捷方式,可以用在硬盘空间合理分配上
硬链接就是文件的名字,一个文件的许多名字就是不同的硬链接。
相同点:
大家都是针对同一个目标进行操作
八. 任务调度指令设置
定义:规定系统在指定的时间完成指定的任务过程。
设置root:
># crontab –e //编辑任务调度指令
># crontab –l //查看任务调度指令