首页 > 代码库 > 文件系统总结
文件系统总结
计算机基础
历史,开源协定
文件系统的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
文件系统总结