linux的基本原则
- 由目的单一的小程序组成,组合小程序完成复杂任务
- 一切皆文件
- 尽可能避免捕获用户接口
- 配置文件保存为纯文本格式
文件系统
- /boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)
- /dev: 设备文件
设备文件:
- 块设备:随机访问,数据块
- 字符设备: 线性访问,按字符为单位
- 设备号: 主设备号(major)和次设备号(minor)
- /etc: 配置文件
- /home: 用户的家目录, 每个用户的家目录一般默认为/home/$USERNAME
- /root: 管理员的家目录
- /lib: 库文件
- 静态库, .a结尾
- 动态库, .dll、.so
- /lib/modules: 内核模块文件
- /media: 挂载点目录,移动设备
- /mnt: 挂载点目录,额外的临时文件系统
- /opt: 可选目录,第三方程序的安装目录
- /proc: 伪文件系统,内核映射文件
- /sys: 伪文件系统,跟硬件设备相关的属性映射文件
- /tmp: 临时文件, /var/tmp
- /var: 可变化的文件
- /bin: 可执行的文件
- /sbin: 管理命令
目录管理
- ls
- cd
- pwd
- mkdir
- rmdir
- tree
文件管理
- touch
- stat
- file
- rm
- cp
- mv
- nano
日期时间
查看文本
- cat
- tac
- more
- less
- head
- tail
- wc
文本处理
bash支持的引号
- ``: 命令替换
- "": 弱引用,能够实现变量替换
- '': 强引用, 不彻底变量替换
文件通配符
- *: 任意长度的任意字符串
- ?: 任意单个字符
- []: 匹配制定范围内的任意单个字符
- [:space:]: 空白字符
- [:punct:]: 标点字符
- [:lower:]: 小写字母
- [:upper:]: 大写字母
- [:alpha:]: 大小写字母
- [:digit:]: 数字
- [:alnum:]: 数字和大小写字母
- [^]: 匹配指定范围外的任意单个字符
文件权限
- r: 可读,可使用相似cat等命令查看文件内容
- w: 可写, 能够编辑或删除文件
- x: 可执行, 在命令提示符下,当作命令提交给内核运行
目录权限
- r: 能够对此目录执行ls以列出内部的文件
- w: 能够在此目录建立文件
- x: 可使用cd切换进此目录, 也可使用
ls -l
查看内部文件的详情信息
用户类别
- 管理员: 0
- 普通用户: 1-65535
- 系统用户: 1-499
- 通常用户: 500-65535
用户组类别
- 管理员组
- 普通组
- 私有组: 建立用户时,若是没有为其指定所属的组,系统会自动为其建立一个与用户同名的组
- 基本组: 用户的默认组
- 附加组: 默认组之外的其余组
/etc/passwd文件内容解析
用户名:密码:UID:GID:注释:家目录:默认shelllinux
/etc/group文件内容解析
组名:密码:GID:以此组为其附加组的用户列表git
/etc/shadow文件内容解析
用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告时间:非活动时间:过时时间shell
用户管理
- useradd
- userdel
- usermod
- passwd: 密码管理
- chsh: 修改用户默认的shell
- chfn: 修改注释信息
- finger: 查看用户帐号信息
- id: 查看用户的帐号属性信息
- change
- pwck: 检查用户帐号完整性
组管理
- groupadd
- groupdel
- groupmod
- gpasswd: 为组设定密码
权限管理
- chown: 改变文件属主
- chgrp: 改变文件属组
- chmod: 修改文件权限
- umask: 遮罩码
bash的配置文件
- 全局配置
- /etc/profile
- /etc/profile.d/*.sh
- /etc/bashrc
- 我的配置
- ~/.bash_profile
~/.bashrc小程序
- profile类的文件
- bashrc类的文件
- 登陆式shell如何读取配置文件?
- /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
- 非登陆式shell如何读取配置文件?
- ~/.bashrc --> /etc/basrc --> /etc/profile.d/*.sh
系统设定
- 默认输出设备: 标准输出, STDOUT, 1
- 默认输入设备: 标准输入, STDINT, 0
- 标准错误输出: STDERR, 2
查看当前shell中的环境变量
特殊权限
- SUID: 运行某程序时,相应进程的属主是程序文件自身的属性,而不是启动者
- chmod u+s file
- chmod u-s file
- SGID: 运行某程序时,相应进程的属组时程序文件自身属性,而不是启动者所属的基本组
- chmod g+s file
- chmod g-s file
- sticky: 在一个公共目录,每一个均可以建立文件,删除本身的文件,但不能删除别人的文件
- chmod o+t dir
- chmod o-t dir
文件系统访问列表
FACL: filesystem access control list 利用文件扩展保存额外的访问控制权限bash