首页 > 代码库 > 文件系统总结

文件系统总结

计算机基础

历史,开源协定

文件系统的LHS

目录管理、文件管理

用户及权限管理

Bash基础特性

grep,egrep,fgrep

vim

find

特殊权限和安全上下文

脚本编程


编程接口

    硬件规格

    系统调用

    库调用
API,应用编程接口,面向不同编程接口所写的源码格式, ABI:二进制程序格式 

java,php,python,shell --> 虚拟机,解释器 --> 高级语言--> 编译器 --> 汇编语言 --> 汇编器 --> 机器代码

语言越高级:人越易写,对硬件要求更高

语言越低级:机器易懂,对硬件要求低,性能越好


release: 

redhat 18,centos 18 ,fedora 6

debian: ubuntu ,mint

slackware: suse,opensuse,sls: suse linux enterprise

arch,gentoo,lfs

gpl:流毒无穷

lgpl:调用类库可闭源

apache:可闭源,需要放置版权协定

bsd:可闭源,不用版权协定,不能指明为BSD所写的程序

开源软件:可收取服务费

自由软件:使用、安装、下载、学习,修改、分发衍生版

免费软件:

    免费获取,使用不收费

    免费获取,使用收费

    免费获取,使用不收费

        游戏难度可怕,威逼你充值过关

        广告无限


Linux哲学思想:一切文件,组合简单小程序完成复杂任务,编程,文本配置

终端:理,虚拟,图形,模拟

交互式接口:GUI,CLI

命令的格式: command [options...] arguments

命令执行:提请shell找到命令所对应的代码,分析后提交给内核,内核分配资源,将其运行起来

命令的类型:type command: 内建(help cmd) 外部(cmd -h,--help ,man cmd)

文件系统:索引及索引指向的编址方式

LSB组织规定的LHS:/bin,/sbin,/lib,/lib64,/etc /proc,/sys,/tmp,/usr,/var /home,/root,/boot /dev,/mnt,/media

目录管理: cd,pwd,ls mkdir,rmdir,tree,install

文件管理: cp,mv,rm,touch,stat,file

文本编辑: nano

文件查看: cat/tac,head,less,tail,more

文件处理: cut,sort,wc,tr 

文件命名法则: <255,不能以数字开头,不能用/及特殊含义的字符,区分大小写,.开头的为隐藏文件


用户及权限管理:

用户:用户认证

useradd,usermod,userdel,id,su,finger,chsh,chfn,chage,passwd,pwck

用户默认信息: /etc/default/useradd,/etc/login.defs

组: 授权机制

groupadd,groupmod,groupdel,gpasswd,newgrp

密码: 保证资源的使用者

权限:r 文件:文本查看命令 目录:ls

w 文件:修改 目录:创建、删除‘

x 文件:运行为一个进程 目录:ls -l 或 cd

修改权限:chmod

修改属主或属组:chown,chgrp(仅root)

    --reference=RFILE FILE...

    -R

掩码: 文件: 777-111=666-umask 目录: 777-umask

密码复杂性策略: 数字,字母,特殊字符,长度,随机度,周期换,重复周期大

chmod,chown,chgrp,umask


当前用户对文件的权限

同属主:应用属主的权限 

同属组:应用属组的权限 

非属主、属组:应用其他用户的权限 

Usermod -l new old

groupmod -n new old

userdel -r user

useradd

-D

-e YYYY-MM-DD

-f DAYS

-s shell

usermod 

-a -G GROUPS.. user

-m -d DIR

-L lock

-U unlock

-e YYYY-MM-DD

-f DYAS


passwd

-l lock

-u unlock

-d 删除用户密码

-e 立即过期

n,x,w,i,e

min,max,warin,inactive,expire

--stdin user

chage

d,m,M,W,I,E

最近一次修改时间, min,max,warn,inactive,expire

gpasswd

-a user 添加用户到组 

-d user 删除组中的用户

-M users..  指定组内成员

-A ADMIN..  指定组管理员

su - user

su - user -c ‘COMMAND‘


bash基础特性

命令历史 ,命令补全,路径补全,命令行展开,hash, 执行状态结果, glob,快捷键,管道,I/O 变量 grep 变量 配置文件 算法 测试 退出状态 换港符 vim 文件测试 find 特殊权限 编程


命令历史:用户执行的命令记录在缓冲区中,退出终端时,写入至HISTFILE定义的文件中,登陆终端时,将历史条目从文件加载至内存中

命令补全:依据path环境变量,从左而右查找命令

hash:将查找到的结果记录于缓存中,供二次查找

路径补全:将用户给出的路径作为路径查找

变量类型内部数据的类型

变量类型的作用:数据的格式,数据的范围,参与的运算

变量:临时存放数据的内存空间

变量名:内存空间的名字

变量命名的法则:数字、字母、_,不能以数字开头,见名知义(totalWeight,total_weight)

执行状态结果:

    成功:0 标准输出,命令的结果

    失败:1-255 标准错误输出,bash的结果(语法)

name=value:值存储在name变量的内存空间中

引用实现赋值:

纯文本: name="a b c d" 空格 

变量: 原内存空间: name=$name 另一个内存空间中:var=$name

命令: name=`command` name=$(command)

glob: ? * [] [^] 字符集: [:digit:] [:lower:] [:upper:] [:alpha:] [:alnum:] [:punct:] [:space:]


配置:全局:/etc/profile,/etc/profile.d,~/.bash_profile. 个人:/etc/bashrc,~/.bashrc

    profile类: 环境变量,命令或脚本

    bashrc类: 本地变量,别名

    交互式登陆: 终端通过密码登陆,su -,-l user

    非交互式登陆: su - user , 图形下终端 ,脚本执行在子shell中

读取配置: . file(负作用:连续读取,新定义的路径重复多次), source file 

grep: . [] [^] * \+ \? \{m,n\} ^ $ ^[[:space:]]*$ \(\) \1,\2,...

egrep: () + ? {m,n}

管道: 任何一个打开的文件都用文件描述符一个数字追踪,

输入 0 ,输出 1,错误输出2

>,>> set -C , >|

2>,2>> , > FILE1 > FILE2 , > FILE1 >&1, &>1

cat < ,wc < , tr < , cat >> FILE < EOF

算术: let var=$num1+$num2, $[$num1+$num2] $(($Num1+$num2)), $(expr $Num1 + $num2)

测试:数值: -eq,-ne,-lt,-le,-gt,-ge 

字符:必须有引号,模式测试时,PATTERN不能用引号,且[[]]

== !=  [[ "A" =~ PATTERN ]] [ -z "A" ] [ -n "A" ]

文件: -[ea] -[fbdclsp] -[ugk] -s -N(最近一次打开后是否修改过) file1 -ef file2 同一设备同一Inode file1 -nt file2 file1比file2的最近一次修改时间距离现在更近? file1 -ot file2 更远?

-[OG] 

组合测试:

[ EXPRESSION1 ] && [ EXPRESSION2 ] 相当于   [ EXPRESSION1 -a EXPRESSION2 ]

[ EXPRESSION1 ] || [ EXPRESSION2 ] 相当于   [ EXPRESSION1 -o EXPRESSION2 ]

[ ! EXPRESSION ]


find命令

默认当前目录,所有文件,打印到标准输出

-ls,-fls,-delete,-ok {} \; -exec {} \; find | xargs command

-name "" -iname "" -regex PATTERN -iregex PATTERN

-type [fdbclsp] 

-user USER , -group GROUP , -uid UID , -gid GID, -nouser, -nogroup

组合:

条件1 -o 条件2  与-ls连用时, \( 条件1 -o 条件2 \)  方便显示

条件1 -a 条件2  与-ls连用时, \( 条件1 -a 条件2 \)  方便显示

! 条件 或 -not 条件

摩根定律

非(P 且 Q) = (非 P) 或 (非 Q)

非(P 或 Q) = (非 P) 且 (非 Q)

-not 条件1 -a -not 条件2 相当于 -not \( 条件1 -o 条件2 \)

-not 条件1 -o -not 条件2 相当于 -not \( 条件1 -a 条件2 \)

大小:-size [+\-]#[KMG] 3 (2,3] , -3[0,2] +3(3,+oo)

时间戳: -atime [+|-]# -mtime [+|-]# -ctime [+|-]# 

+# 距今大于#天

# 距今有#天

-# 距今小于#天


权限: -perm [\|-]MODE

MODE 必须 为MODE

\MODE  3类用户的权限,只要有一类用户的某位权限匹配即可,  644, 属主能匹配r或w直接通过。属组能匹配r或x直接通过。其他能匹配r或x直接通过。

-MODE 至少为MODE 例如 222 , 222-777都满足


本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1953863

文件系统总结