Linux的发行版、内核的关系
LFS(Linux From Scratch)、Gentoo、RedHat、SUSE、Debian
目录管理命令:ls、cd、pwd、mkdir、rmdir、tree
文件管理命令:touch、stat、file、rm、cp、mv、nano
日期时间管理命令:date、clock、hwclock、cal
查看文本:cat、tac、more、less、head、tail
文本处理:cut、join、sed、awk、grep、
cut:-d指定字段分隔符,默认是空格
-f指定要显示的字段
文本排序:sort、
sort:-n(数值排序)、-r(数值降序)、-t(字段分隔符)、-k(以哪个字段为关键字进行排序)、-u(排序后相同的行只显示一次)、-f(排序时忽略字符大小写)
uniq:-c(显示文件中进行重复的次数)、-d(只显示重复的行)
文本统计:wc(word count)
字符处理命令:tr(转换或删除字符)
bash及其特性:
shell:外壳,是一种应用程序
GUI:Gnome、KDE、Xfce
CLI:sh、csh、ksh、bash、tcsh、zsh
bash:
1、命令历史、命令补全
2、管道、重定向
3、命令别名
4、命令行编辑
5、文件名通配
6、变量
7、编程
8、命令行展开
命令行编辑:
Ctrl+a:跳转到命令行首
Ctrl+e:跳转到命令行尾
Ctrl+u:删除光标至命令行首的内容
Ctrl+k:删除光标至命令行尾的内容
Ctrl+l:清屏
命令历史:
查看命令历史:history
-c:清空命令历史
-d OFFSET [n]:删除指定位置的命令
-w:保存命令至历史文件中
环境变量:
PATH:命令搜索路径
HISTSIZE:命令历史缓冲区大小
命令历史的使用技巧:
!n:执行命令历史中的第n条命令
!-n:执行命令历史中的倒数第n条命令
!!:执行上一条命令
!string:执行命令历史中最后一个以指定字符串开头的命令
!$:引用前一个命令的最后一个参数
Esc, .:
Alt+.:
命令补全:
PATH:
路径补全:
命令别名:
alias COMMAND='COMMAND [options] [arguments]'
在shell定义中的别名仅在当前的shell生命周期中有效,别名的有效范围仅为当前shell进程。
unalias CMDALIAS撤销别名
命令替换$(COMMAND):把命令中某个字命令替换为其执行结果的过程
反引号:`COMMAND`
bahs支持的引号:
‘’:命令替换
“”:弱引用,可以实现变量替换
``:强引用,不完成变量替换
文件名通配:globbing
*:可以匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定范围内的任意单个字符[abc],[a-z],[A-Z],[0-9,a-z,A-Z]
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
可以是命令man 7 glob
[^]:匹配指定范围外的任意单个字符
用户、组、权限
权限:r(可读,可以使用类似cat等命令查看文件的内容)、w(可写,可以编辑或者删除此文件)、x(可执行,excutable,可以命令提示符下当作命令交给内核运行)
用户:就是获取资源或服务的标识符而已。
用户装在容器中,容器关联权限:用户组,方便地指派权限,用户组也是标识符。
安全上下文(secure context):
不同用户访问同一个命令,比如ls,它们的访问权限是不一样的,访问权限取决于ls文件所属主和组的权限。而不同用户它们的权限是不一样的。
目录:
r:可以对此目录执行ls以列出内部的所有文件。
w:可以在此目录创建文件
x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息。
rwx:
r--:可读
r-x:可读和执行
---:无权限
0 000 ---:无权限
1 001 --x:执行
2 010 -w-:写
3 011 -wx:写和执行
4 100 r--:只读
5 101 r-x:读和执行
6 110 rw-:读写
7 111 rwx:读写执行
rw-rw----:660
用户:UID etc/passwd
组:GID etc/group
影子口令 :
用户:etc/shadow
组:etc/gshadow
用户类型:
管理员:0
普通用户:1~65535
系统用户:1~499
一般用户:500~60000
用户组类型:
管理员组:
普通组:
系统组:
一般组:
用户组类别:
基本组:用户的默认组
私有组:创建用户时,如果没有为其指定所属组,系统会自动为其创建一个与用户名同名的组
附加组:额外组,默认组以外的其它组。
/etc/passwd的文件信息:
account:登录名
password:密码
UID:
GID:基本组ID
comment:注释
HOME DIR:家目录
SHELL:用户的默认shell
/etc/shadow的文件信息
account:登录名
encryted password:加密的密码
加密方法:
对称加密:加密和解密都要使用同一个密码。
公钥加密:每个密码都要成对出现,一个为私钥(secure key),一个为公钥(public key)。
单向加密:散列加密,提前数据的特征码,常用于数据完整性加密。能加密不能解密
1、雪崩效应(初始量的微小变化,引起结果的巨大改变)
2、定长输出
比较常用的有:MD5(Message Digest)128位定长输出;SHA1(Secure Hash Algorithm),160位定长输出。