CentOS 8基础
- 基本操作
- Shell简介
- 常见的shell
- GUI(Graphic User Interface) Shell
- Windows
- X-Windows
- Gnome
- KDE
- Xface
- CLI(Command Line Interface) Shell
- Bash的特性
- 支持命令历史、命令补全、路径补全
- 支持管道、重定向
- 支持命令别名
- 支持命令行编辑
- 支持命令行展开
- 支持命令行通配
- 支持变量
- 支持编程
- Bash支持的引号
- 反引号(
)—— 用于引用变量值 
- 弱引用 " " —— 引用字符串和被标识的变量

- 强引用 ' ' —— 仅引用字符串

- Bash常用快捷键
- Ctrl + a —— 跳到命令行首
- Ctrl + e —— 跳到命令行尾
- Ctrl + l —— 清屏
- Ctrl + u —— 删除光标左边所有内容
- Ctrl + k —— 删除光标右边所有内容
- Ctrl + <-- —— 光标定位到离自己最近的一个单词前面
- 命令操作命令
- history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
显示或操作历史操作列表
- -c 清除所有历史操作记录
- -d 删除所选条目的历史操作
- -w 保存历史命令至文件 ~/.bash_history 中
- alias CMDALIAS='COMMAND [options] [arguments]'
建立自定义字符与命令的映射(仅在当前生命周期有效!)
- type
查看某条命令是何种类型
- !n
执行历史命令中的第n条命令
- !-n
执行历史命令中的倒数第n条命令
- !!
执行上一条命令
- !
执行历史命令中最近一个以开头的命令
- !$
引用前一条命令的最后一个参数
- 环境变量
- PATH
环境变量路径
- HISTSIZE
历史命令缓存大小,默认存储1000条命令
- SHELL
当前系统使用的shell
- 文件操作命令
- ls
列出文件或目录信息
- -a 显示所有文件和目录
- -A 显示除“ . ”和“ .. ”以外的所有文件列表
- -C 多列显示输出结果。这是默认选项
- -l 以长格式显示目录下的内容列表
- -d 仅显示目录名,而不显示目录下的内容列表
- -R 显示出目录下以及其所有子目录的文件名(包括隐藏文件)
- cd [PATH]
切换工作目录
- mkdir [OPTION] DIRECTORY
创建目录
- -p 如果父目录不存在,则先创建父目录
- -v 输出每一个创建的目录
- touch [OPTION] FILE
创建文件或修改时间
- -a 仅更改访问时间
- -d,--date=STRING 解析字符串,并用它代替当前时间
- -m 只更改修改时间
- stat [OPTION] FILE
显示文件或文件系统的状态
- -f 显示文件系统状态
- -c,--format=FORMAT 使用指定格式代替默认格式
- -t 以简洁的形式打印信息
- ————!文件的有效格式(不包括文件系统)!————
- %A 人类可读形式访问
- %b 已分配的块数
- %B 报告每个块的字节大小
- %d 设备编号,十进制
- %F 文件类型
- %m 挂载点
- %s 以字节为单位显示总大小
- ————!文件系统的有效格式!————
- %b 文件系统中数据块总数
- %c 文件系统中文件节点总数
- %T 人类可读格式的文件系统类型
- rm [OPTION] FILE/DIR
删除文件或目录
- cp [OPTION] SOURCE DEST
复制一个或多个文件到目录
- -a 归档复制,相当于-dpr
- -r/-R 递归拷贝,拷贝目录时必须使用此选项
- -p 拷贝时保留原权限
- mv [OPTION] SOURCE DEST
移动文件或目录
- cat [OPTION] [FILE]
拼接文件内容并输出至标准输出
- tac [OPTION] [FILE]
连接文件并倒序打印内容至标准输出
- -b 将分隔符连接到分隔符之前而不是之后
- -r 将分隔符解释为正则表达式
- more [OPTIONS]
全屏查看文本文件内容,只能从前往后看
- -d 显示帮助代替警示
- -s 将多个空行压缩为一个
- -p 不滚动,清屏和显示文本
- less FILE
全屏查看文本文件内容,前后查看顺序可调
- head [OPTION] FILE
从文件首部开始打印文件内容,默认打印10行
- tail [OPTION] FILE
从文件尾部开始打印文件内容,默认打印10行
- -n NUM 查看文件尾部NUM行的内容
- -f 实时查看文件的更新
- wc [OPTION] FILE
文本统计
- -c 统计文本字节数
- -w 统计文本单词数
- -l 统计文本行数
- du [OPTION] [FILE]
查看文件或目录占用的磁盘空间大小
- -s 显示总的占用空间大小
- -h 单位转换,以友好方式显示大小
- df [OPTION] [FILE]
报告文件系统磁盘空间使用情况
- -T 打印文件系统类型
- -h 单位转换,以友好方式显示
- 常用基础命令
- date —— 显示或设置时间和日期
- -s STRING 以字符串方式设置时间
- +%Y 年
- +%m 月
- +%d 日
- +%H 时
- +%M 分
- +%S 秒
- cal —— 打印日历
- clear —— 清屏
- w —— 显示当前在线用户和其正在运行的命令
- who —— 查看当前在线用户
- whoami —— 显示当前登录用户
- which —— 显示指定命令的绝对路径
- hostname [STRING] —— 查看或临时修改主机名
- hostnamectl —— 查看或永久修改主机名
- ldd —— 查看指定程序的依赖库文件
- 获取帮助
- 内部命令:help COMMAND
- 外部命令:COMMAND --help
- man手册:man COMMAND
- [] :可选
- <> :必选
- … :可出现多次
- | :多选一
- {} :分组
- NAME :命令名称及功能简要说明
- SYNOPSIS :用法说明,包括可用的选项
- DESCRIPTION :命令功能的详尽说明,可能包括每一个选项的意义
- OPTIONS :说明每一个选项的意义
- FILES :此命令相关的配置文件
- BUGS :报告 bug
- EXAMPLES :命令示例
- SEE ALSO :另外参照
- 翻屏:空格 ( 向后翻一屏 ) , b 键 ( 向前翻一屏 )
- ————!查找!————
- /KEYWORD :从前往后查找 KEYWORD
- ?KEYWORD :从后往前查找 KEYWORD
- n :下一个匹配的行
- N :前一个匹配的行
- q :退出
- 压缩、查找和编辑文件
- 通配符
- * —— 匹配任意长度的任意字符
- ? —— 匹配任意单个字符
- [abc],[a-m],[0-9] —— 匹配指定范围内的任意单个字符
- [[:space:]] —— 表示空白字符
- [[:punct:]] —— 表示标点符号
- [[:lower:]] —— 表示小写字母
- [[:upper:]] —— 表示大写字母
- [[:alpha:]] —— 表示大小写字母
- [[:digit:]] —— 表示数字
- [[:alnum:]] —— 表示数字和大小写字母
- [^] —— 匹配指定范围之外的任意单个字符
- 归档与压缩
- gzip [OPTION] [FILE]
gz格式
- bzip2 [OPTION] [FILE]
bz2格式
- -k 压缩时保留源文件
- -d 解压缩,解压完成后会删除原文件
- xz [OPTION] [FILE]
xz格式
- -k 压缩时保留原文件
- -d 解压缩,解压完成后会删除原文件
- zip filename.zip { FILE | DIR }
zip格式,压缩命令
- unzip FILE.zip
解压zip压缩文件
- compress [file ...]
Z格式,压缩命令
- uncompress FILE.Z
解压Z压缩包
- tar [OPTION] [FILE]
归档命令
- -c 创建归档文件
- -f 指定要操作的归档文件
- -x 还原归档
- -v 显示归档过程
- -p 归档时保留权限信息;只有管理员才有权限用此选项
- -C 指定还原归档或解压时的目标目录
- -tf 不展开归档,直接查看归档了哪些文件
- ——!常用组合!——
- -zcf 归档并调用gzip进行压缩
- -jcf 归档并调用bzip2进行压缩
- -Jcf 归档并调用xz进行压缩
- 文本文件查找和过滤
- sort [OPTION] [FILE]
显示文本内容并排序
- -n 以数值大小进行排序
- -r 逆序排序
- -t 字段分隔符
- -k 以哪个字段为关键字进行排序
- -u 去重,排序后相同的行只显示一次
- -f 排序时忽略字符大小写
- uniq [OPTION] [INPUT [OUTPUT]]
文本去重命令
- -c 显示文件中行重复的次数
- -d 只显示重复的行
- -u 只显示未重复的行
- cut OPTION [FILE]
按分隔符显示文本字段
- -d 指定字段分隔符,默认是空格
- -f 指定要显示的字段
- awk -F: '{ print $1 }' /etc/passwd
以“ : ”为分隔符,显示passwd文件中第一个字段
- grep [OPTION] PATTERN [FILE]
文本过滤命令
- -i 忽略大小写
- --color 匹配到的内容高亮显示
- -v 显示没有被正则表达式匹配到的内容
- -o 只显示被正则表达式匹配到的内容
- -E 使用扩展正则表达式
- -q 静默模式,不输出任何信息
- -A # 此处的“#”必须是数字。被正则匹配到的内容以及其后面“#”行的内容都显示出来
- -B # 此处的“#”必须是数字。被正则匹配到的内容以及其前面“#”行的内容都显示出来
- -C # 此处的“#”必须是数字。被正则匹配到的内容及其前后各“#”行的内容都显示出来
- 高级命令之sed
- 例一
- [ root@localhost ~]# cat test
- hello world
- hello runtime
- hello hello hello 123
- hello hello 123
- hello tom
- [ root@localhost ~]# sed - i 's/hello/hi/2' test
- [ root@localhost ~]# cat test
- hello world
- hello runtime
- hello hi hello 123
- hello hi 123
- hello tom
- 例二
- [ root@localhost ~]# cat test
- hello world
- hello runtime
- hello hello hello 123
- hello hello 123
- hello tom
- [ root@localhost ~]# sed - i 's/hello/hi/g' test
- [ root@localhost ~]# cat test
- hi world
- hi runtime
- hi hi hi 123
- hi hi 123
- hi tom
- 文件命名规范
- 长度不能超过 255 字符
- 不能使用 / 当文件名
- 严格区分大小写
- 文件查找命令find
- 语法:
find [PATH路径] [OPTIONS匹配条件] [ACTIONS动作]
- 查找路径:默认为当前目录
- ————!OPTIONS,匹配条件!————
-name FILENAME
:对文件名精确匹配,支持通配符
-iname FILENAME
:文件名匹配时不区分大小写
-regex PATTERN
:基于正则表达式进行文件名匹配
-user USERNAME
:查找某用户的所有文件
-group GROUPNAME
:查找某组的所有文件
-uid UID
:根据UID进行查找
-gid GID
:根据GID进行查找
-nouser
:查找没有拥有者的文件
-nogroup
:查找没有属组的文件
-type TYPE
:根据文件类型进行查找,类型的可取值是固定的
b
特殊块文件(缓冲的)
c
特殊字符文件(不缓冲)
d
目录
p
命名管道(FIFO)
f
普通文件
l
符号链接
s
套接字
D
门(Solaris特有)
-size SIZE
:根据文件大小进行查找,+表示大于,-表示小于(如1k、1M、+10k、+10M、-1k、-10M)
-mtime TIME
:根据修改时间查找,以天为单位,如:+5是5天前; -5是5天以内
-mmin TIME
:根据修改时间查找,以分钟为单位
-atime TIME
:根据访问时间查找,以天为单位
-amin TIME
:根据访问时间查找,以分钟为单位
-ctime TIME
:根据修改文件属性的时间查找,以天为单位
-ctime TIME
:根据修改文件属性的时间查找,以分钟为单位
- ————!ACTIONS,处理动作(默认动作是显示到屏幕上)!————
-exec COMMAND {} \;
:对查找到的所有文件执行COMMAND,操作不需要确认
-ok COMMAND {} \;
:类似 -exec ,但每次操作都需要用户确认,如果用户回应不是以 “y” 起始则不会运行COMMAND
-ls
:类似 ls –dils 的形式显示每一个文件的详细信息
-delete
:删除查找到的文件
-fls FILE
:将查找到的所有文件的长格式信息保存至指定文件中
- 注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令,而有些命令不能接受过多的参数,此时命令执行可能会失败,而xargs可规避此问题。
xargs
:通过管道将查找到的内容给xargs处理,xargs后面直接跟命令即可
- ————!OPERATORS,运算符,以下expr为表达式!————
-a
:逻辑与,两个条件都满足,如:-mmin +10 -a -mmin -20
expr1 expr2
:隐含了逻辑与,与 expr1 -a expr2 效果相同
-o
:逻辑或,其中一个条件满足
! expr
:逻辑非
-not expr
:逻辑非,与 ! expr 相同
- 文件层级系统FHS
- 文件层级
- / :根分区
- /boot :系统启动相关的文件,如内核 ( vmlinuz ) 、 initrd ( initramfs ) 以及 grub(bootloader)
- /dev :设备文件,不能单独分区
- / etc :配置文件目录
- /home :普通用户家目录
- /root :管理员家目录
- /lib :库文件目录
- /media :挂载点目录,通常用来挂载移动设备
- / mnt :挂载点目录,通常用来挂载额外的临时文件系统,比如另一块硬盘
- /opt :可选目录,早期通过用来安装第三方软件
- /proc :伪文件系统,内核映射文件,不能单独分区
- /sys :伪文件系统,跟硬件设备相关的属性映射文件,不能单独分区
- / tmp :临时文件目录
- / var :可变化的文件,比如 log 、 cache 。存放日志文件、 pid 文件、 lock 文件
- /bin :可执行文件,用户命令
- / sbin :管理命令
- / usr :全局共享只读文件。提供操作系统核心功能,可以单独分区
- /usr/local:第三方软件安装路径
- 特殊目录
- /etc、/bin、/sbin、/lib等目录内是系统启动就需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上
- /usr/bin、/usr/sbin、/usr/lib提供操作系统核心功能,/usr可以单独分区
- /usr/local/bin、/usr/local/sbin、/usr/local/lib、/usr/local/etc、/usr/local/man等等在/usr/local目录下的内容都是第三方软件,建议单独分区
- 重定向
- 系统设定
- 默认输入设备:标准输入, STDIN , 0 (键盘)
- 默认输出设备:标准输出, STDOUT , 1 (显示器)
- 标准错误输出:标准错误, STDERR , 2 (显示器)
- I/O重定向
- >:覆盖输出
- >> :追加输出
- 2> :重定向错误输出
- &> :覆盖重定向标准输出和错误输出至同一文件
- < :输入重定向
- << : Here Document
- 管道 “ | ”
- 前一个命令的输出作为后一个命令的输入
- 最后一个命令会在当前shell进程的子shell进程中执行
- 命令1 | 命令2 | 命令3 ...
- tee FILE
从标准输入读取数据,输出一份到屏幕,一份保存到文件
- vi/vim编辑器
- 三种编辑模式
- 命令模式:用户执行命令,比如复制行、粘贴行等等
- 输入模式:用于输入文本、修改文本等等
- 末行模式:用于查找文本、保存修改等等
- 编辑模式的转换
- 命令模式 → 输入模式 { i | a | o }
- 输入模式 → 命令模式 { ESC }
- 命令模式 → 末行模式 { : }
- 末行模式 → 命令模式 { ESC }
- 打开文件方式
- vim filename // 打开文件
- vim +n filename // 打开文件并定位到第 n 行
- vim + /pattern filename // 打开文件并定位到第一次被 / pattern 匹配到的内容行首
- 末行模式命令
- :w 保存
- :q 退出
- :! 强制
- :x 强制保存退出
- :START,ENDd 删除第START至END行
- :START,END s/pattern/string/g 将第START行到第END行的所有“pattern”替换为“string”
- set nu 显示行号
- set nonu 取消显示行号
- 命令模式命令
- ZZ 关闭文件
- ————!逐字符移动!————
- h 向左移动 个字符
- l 向右移动 个字符
- J 向下移动 个字符
- K 向上移动 个字符
- ————!以单词为单位移动!————
- w 移动到下 个单词的词首
- e 移动到下个单词的词尾
- b 移动到上个单词的词首
- ————!行内跳转!————
- 0 数字0,跳转到绝对行首
- ^ 跳转到行首的第一个非空字符
- $ 跳转到绝对行尾
- ————!行间跳转!————
- gg 跳转到第一行
- G 跳转到最后一行
- gg 跳转到第 行
- G 跳转到第 行
- ————!翻屏!————
- ctrl + f 向下翻一屏
- ctrl + b 向上翻一屏
- ctrl + d 向上翻半屏
- ctrl + u 向上翻半屏
- ————!字符编辑!————
- x 删除光标所在处的单个字符
- x 删除光标所在处及其向后共个字符
- xp 交换光标所在处的字符及其后面字符的位置
- d$ 表示删除当前光标所在位置到行尾的内容
- d^ 表示删除当前光标所在位置到第一个行首非空白字符位置的内容
- d0 表示删除当前光标所在位置到绝对行首的内容
- d跳转符 删除跳转符指定范围内的个,例如*dw
- dd 删除当前光标所在行整行
- dd 删除包括当前光标所在行在内的行
- D 删除当前光标所在行的内容,保留空行
- yy 复制所在行
- p 粘贴整行至光标所在的下一行;或粘贴非整行至光标后面
- P 粘贴整行至光标所在的上一行;或粘贴非整行至光标前面
- R 替换多个字符
- r 将当前光标的字符替换为
- u 撤销前 次的编辑操作
- ctrl + r 还原最近一次的撤销操作
- . 重复前一次编辑操作
- 可视化模式
- 文本查找
- /pattern 从上往下查找匹配的内容
- ?pattern 从下往上查找匹配的内容
- n 从上往下查找匹配到的内容的下一条
- N 从下往上查找匹配到的内容的下一条
- 权限和组管理
- 用户和组
- useradd [OPTION] USERNAME
创建用户
- -u UID //指定uid
- -g GID //指定GID
- -G {groupname | GID} //添加所属组
- -c "COMMENT" //注释信息
- -d /path/derectory //指定家目录;目录不能事先存在
- -s shell //指定登录shell
- -M //创建用户时不创建家目录
- -r //添加系统用户
- -D //直接打印/etc/default/useradd文件的内容或配合其他选项
- usermod
修改用户属性
- -u UID //修改用户uid
- -g GID //修改用户gid
- -a -G groupname //不使用-a会覆盖此前的附加组
- -md DEST //改变用户家目录的同时把原来家目录的文件移动到新家目录中
- -e YYYY-MM-DD //指定用户账号过期日期
- -f INACTIVE //设定非活动期限
- -L //锁定账号;被锁定的账号在/etc/shadow文件中密码前有个“!”
- -U //解锁账号
- -s SHELL //修改登录shell
- chdh [OPTION] [username]
修改用户默认shell
- userdel [OPTION] USERNAME
删除用户
- id [OPTION] USER
查看用户账号信息
- -u //查看UID
- -g //查看GID
- -G //查看groups
- su [OPTION] USER
切换用户;默认为非登录切换,即不读取用户配置文件
- bash配置文件
- 全局配置文件
- /etc/profile
- /etc/profile.d/*.sh
- /etc/bashrc
- 用户配置文件
- ~/.bash_profile
- ~/.bashrc
- 配置文件类型
- profile:为交互式登录的shell提供配置,用来设定环境变量、运行命令或脚本
- bashrc:为非交互式登录的shell提供配置,用来设定本地变量、定义命令别名
- 登录式shell读取配置文件顺序
- ①/etc/profile
- ②/etc/profile.d/*.sh
- ③~/.bash_profile
- ④~/.bashrc
- ⑤/etc/bashrc
- 非登录式shell读取配置文件顺序
- ①~/.bashrc
- ②/etc/bashrc
- ③/etc/profile.d/*.sh
- 密码管理
- passwd [OPTION] [USERNAME]
用户密码管理
- --stdin //从标准输入获取用户密码
- -l //锁定用户
- -u //解锁用户
- -d //删除用户密码
- -n mindays //指定最短使用期限
- -x maxdays //指定最长使用期限
- -w warndays //提前多少天开始警告
- -i inactivedays //非活动期限,密码过期后到禁用前的这段时间
- chage [options] USERNAME
改变用户密码过期信息
- -d //最近一次的修改时间
- -E //过期时间
- -I //非活动时间
- -m //最短使用期限
- -M //最长使用期限
- -W //警告时间
- openssl command [command_opts] [command_args]
密码生成工具
- dgst //提取特征码
- passwd //生成密码
- rand //生成伪随机数
- 组管理
- groupadd [options] GROUP
创建组
- -g GID //指定GID
- -r //添加一个系统组
- groupmod [options] GROUP
修改组信息
- -g GID //修改指定组的GID
- -n groupname //修改组名
- groupdel [options] GROUP
删除组
- gpasswd [option] GROUP
修改组密码
- -a,--add USER //将用户添加到组
- -d,--delete USER //将用户从组中删除
- -r,--delete-password //删除组密码
- newgrp [-] [group]
切换组
- Linux密码破解
- 重启系统选择第二个内核
- 输入e进入编辑,在“linux”所在的末行追加“rd.break”,按ctrl + x
- 输入命令“mount -o remount,rw /sysroot/”
- 切根chroot /sysroot/
- 设置密码:方法①passwd root方式②echo 'passwd' | passwd --stdin root
- 创建标签文件“touch /.autorelabel”
- 输入两次exit退出
- 权限以及三类对象
- 对象
- owner:属主,u
- group:属组,g
- other:其他,o
- 文件权限
- r(4):读取权限
- w(2):写入权限
- x(1):执行权限
- 目录权限
- r:列出文件夹内容权限
- w:创建、删除文件权限
- x:切换目录权限
- 权限管理命令
- chmod MODE file
修改用户权限
- chown USERNAME file
修改属主和属组权限
- chgrp [OPTION] GROUP FILE
修改文件的属组
- 遮罩码
- 遮罩码umask来控制创建文件和目录的默认权限
- 文件权限公式:
666 - umak
- 目录权限公式:
777 - umask
- 文件默认不能具有执行权限,如果算得的结果有执行权限则将其权限加1
- linux安全上下文
- 文件默认权限644,目录默认权限755
- 前提:进程或文件有属主和属组
- 进程的权限
- 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有可执行权限
- 启动为进程后,其进程的属主为发起者,属组为发起者所属的组
- 进程访问文件时的权限取决于进程的发起者
- 特殊权限
- linux默认权限是根据linux安全上下文的方式来控制的,而特殊权限的存在打破了linux安全上下文的规则
- SUID —— 运行程序时,这个程序启动的进程的属主是文件自身的属主,而不是启动者
- 更改文件属主特殊权限:
chmod u±s file
- SGID —— 运行程序时,这个程序启动的进程的属组是文件自身的属组,而不是启动者
- 更改文件属组特殊权限:
chmod g±s DIR
或 chmod g=2755 DIR
- Sticky —— 在一个公共目录,每个人都能创建文件,删除自己的文件,但是不能删除别人创建的文件
- 4755 //有SUID,文件权限为755
- 2755 //有SGID,文件权限为755
- 1755 //有Sticky,文件权限为755
- 7755 //有SUID、SGID、Sticky,文件权限为755
- 文件系统访问控制列表(Filesystem Access Control List)
- setfacl [-bkndRLP] {-m|-M|-x|-X ...} file ...
设置facl
- -m { u | g | du | dg } //设定权限。u为用户;g为组;d为继承
例:setfacl -m du:test:rw file
- -x { u:UID | g:GID } //取消权限。
例:setfacl -x u:user1 file
- -b //取消所有权限
- getfacl file
获取facl信息
- 以另一个用户身份执行命令sudo
- sudo配置文件:/etc/sudoers
- 编辑配置文件:visudo /etc/sudoers
- 格式: who which_hosts=(runas) command
- 别名 —— 必须全部且只能使用大写英文字母的组合,可以使用感叹号取反
- 别名分类
- sudo [options] COMMAND
- -l //列出当前用户可以使用的所有sudo类命令
- -v //sudo默认在执行5分钟后询问密码,此参数做续时
- -k //使认证信息失效,若不执行-k,则5分钟后失效
- -b //将要执行的指令放在后台执行
- -u USER //指定执行用户,默认为root
- 管理命令
- w //显示当前登录用户的操作
- sleep NUMBER [SUFFIX] ...
睡眠或停顿
- TIME //停顿TIME秒后再执行后面的命令
- ————!SUFFIX!————
- s //秒,默认
- m //分
- h //小时
- d //天
- last //显示/var/log/wtmp文件,显示用户登录历史及重启历史
- lastb //显示/var/log/btmp文件,显示用户错误的登录尝试
- lastlog //显示每个用户最近一次成功登录的信息
- basename //显示路径基名
- 进程管理
- 进程基本概述
- 进程是已启动的可执行程序的运行中实例。
- /proc目录下以数字为名的目录,每一个目录代表一个进程,保存着进程的属性信息。每一个进程的PID是唯一的,即使进程退出,其他进程也不会占用其PID
- 进程的组成部分
- 已分配内存的地址空间
- 安全属性,包括所有权凭据和特权
- 进程代码的一个或多个执行线程
- 进程状态
- 进程的环境
- 本地和全局变量
- 当前调度上下文
- 分配的系统资源,如文件描述符和网络端口
- 进程的产生
- 现有的(父)进程复制自己的地址空间(fork)来创建一个新的(子)进程结构。
- 每个新进程分配有一个唯一的进程ID(PID),满足跟踪和安全性之需。PID与父进程ID(PPID)是新进程环境的元素
- 任何进程可创建子进程。所有进程都是第一个系统进程的后代。
- 进程的分类
- 前台进程:与终端相关的进程,通过终端启动的进程。注意(也可把前台进程送往后台,以守护模式运行)
- 守护进程:daemon,与终端无关的进程(如内核),在系统引导过程中启动的进程
- 进程状态
- 六种状态
- Ready:就绪态,也可称作睡眠态
- Excuting:运行态
- Uninterruptible:不可中断的睡眠,不可随时唤醒,只有当IO资源加载成功后才能唤醒
- Interruptible:可中断的睡眠,可随时唤醒
- Zombie:僵尸进程,正常运行结束了,但未释放资源的进程
- Stopped:停止态,暂存于内存中,但不会被调度
- 进程睡眠的原因
- 当一个执行中的进程,需要加载额外的IO资源的时候,由于IO设备的速度太慢,所以会转入睡眠状态等待,交出CPU给其他进程,以免浪费剩余执行时间
- 在多任务处理操作系统中,每个CPU(或CPU核心)在一个时间点上处理一个进程。在进程运行时,它对CPU时间和资源分配的直接要求会有变化。进程分配有一个状态,它随着环境要求而改变
- Linux进程状态标识
- R(TASK_RUNNING) :进程正在CPU上执行,或者正在等待运行。
- S(TASK_INTERRUPTIBLE) :进程处于睡眠状态且正在等待某一条件,如硬件请求、系统资源访问或信号。当事件或信号满足该条件时,进程将返回到运行中
- D(TASK_UNINTERRUPTIBLE) :此进程也在睡眠,但与S不同,不会响应传递的信号,仅在特定的条件下使用,其中进程中断可能会导致意外的设备状态
- K(TASK_KILLABLE) :进程处于睡眠状态,与不可中断的D相同,但有所修改,允许等待中的任务通过响应信号而彻底退出
- T(TASK_STOPPED) :进程已被停止,通常是通过用户或其他进程发出的信号
- T(TASK_TRACED) :正在被调试的进程也会临时停止,并且共享同一个T状态标志
- Z(EXIT_ZOMBIE) :子进程在退出时向父进程发出信号。除进程身份PID之外的所有资源都已释放
- X(EXIT_DEAD) :当父进程清理(获取)剩余的子进程结构时,进程现在已彻底释放。此状态从不会在进程列出实用程序中看到
- < :高优先级进程
- N :低优先级进程
- + :前台进程组中的进程
- | :多线程进程
- s :会话进程首进程
- 进程优先级 —— 值越高优先级越低
- 进程优先级范围:0~139
- 实时优先级,由内核调整:0~99
- 静态优先级,用户可控制:100~139
- 相对优先级(进程的nice值):-20~19
默认情况下有继承关系,默认值为0
- nice级别与权限
- root用户设置负nice级别以及降低现有进程的nice级别
- 普通非特权用户仅允许设置正的nice级别。只能对现有进程提升nice级别,而不能降低nice级别
- 进程优先级调整
- renice NICE PID
调整已启动进程的nice值
- nice -n NICE COMMAND
在启动时指定nice值
- 进程管理命令
- Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中
- 进程信息标识
- [ ]:表示内核线程,通常位于顶部
- exting/defunct:表示僵尸进程
- VSZ(Virtual memory SiZe):虚拟内存集
- RSS(ReSident Size):常驻内存集
- STAT:进程状态
- TIME:运行时的累积时长
- NI:nice值
- PRI:优先级
- PSR:进程运行在哪个CPU核心上
- RTPTRIO:实时优先级
- C:运行的CPU编号
- STIME:进程的启动时间
- 内存统计数据标识
- r(running):表示等待运行的队列长度,即等待运行的进程的个数
- b(block):表示阻塞队列长度,即处于不可中断睡眠状态的进程个数
- swpd:交换内存的使用总量
- free:空闲物理内存总量
- buffer:用于buffer的内存总量
- cache:用于cache的内存总量
- si(swap in):表示从物理内存有多少页面换进swap,即数据进入swap的数据速率(kb/s)
- so(swap out):数据离开swap的数据速率
- bi(block in):从块设备读入数据到系统的速率(kb/s)
- bo(block out):保存数据至块设备的速率
- in(interrupts):中断速率
- cs(context switch):进程切换速率
- us:表示用户空间
- sy:表示内核空间
- id:表示空闲百分比
- wa:表示等待IO完成所占据的时间百分比
- st:表示steal,被虚拟化技术偷走的时间
- ps命令支持三种选项格式
- UNIX(POSIX)选项,可以分组但必须以连字符开头
- BSD选项,可以分组但不可与连字符同用
- GNU长选项,以双连字符开头
- 命令
- ps
列出当前的进程,可以显示详细的进程信息
- a //显示所有与终端有关的进程
- u //显示进程是由哪个用户启动的
- x //显示所有与终端无关的进程
- -e //显示所有进程,与-A效果相同
- -l //以长格式显示
- -F //显示
- -f //显示以更详细的完整格式的进程信息
- -H //以进程层级格式显示
- -o //根据自己的需要选规则要显示的字段
例:ps -o pid,comm,ni
- pstree
显示当前系统上的进程树
- pgrep COMMAND
根据命令以grep风格指定显示哪些进程,只显示进程号
- pidof COMMAND
根据进程名查找其PID号
- vmstat [options] [delay [count]]
虚拟内存状态查看命令
- INT //每INT秒刷新一次
- INT N //每INT秒刷新一次,刷新N次后退出
- -s //显示内存的统计数据
- 控制作业
- 作业与会话
- 作业控制是shell的一种功能,它允许单个shell实例运行各管理多个命令
- 作业分类
- 前台作业:通过终端启动,且启动后一直占据了命令提示符
- 后台作业:可以通过终端启动,但启动之后,释放命令提示符,后续操作在后台完成
- 在命令后面跟上“&”符号可以生成一个后台作业
- 命令
nohup <COMMAND> &
将进程送往后台,剥离与终端的关系
jobs
显示当前所有的后台作业,结果中“+”为默认操作的作业,“-”为第二个操作作业
fg
将后台作业调至前台运行
- %ID //将jobs命令中序号为ID的进程调至前台
bg
恢复后台暂停运行的进程
- %ID //将jobs命令中序号为ID的进程恢复运行
kill
杀死进程
- 进程间通信(IPC:Inter Process Communication)
- 进程通信方式
- 同一主机
- 不同主机
- rpc:Remote Procecure Call
- 基于socket实现进程间通信
- 使用信号控制进程
- 指定一个信号的方法
- 1.信号号码(数字标识):kiil -1
- 2.信号完整名称:kill -SIGKILL
- 3.信号简写名称:kill -TERM
- 基本进程管理信号
- 信号ID——短名称——定义——用途
- 1——HUP——挂起——让进程不用重启重读配置文件
- 2——INT——键盘中断——中断前台进程,等同ctrl+c
- 9——KILL——无法拦截中断——立即终止程序,无法被中断
- 15——TERM——终止——终止程序,可以被拦截
- 命令
- kill [-SIGNAL] PID ...
向进程发送信号
- killall COMMAND
将所有以此为名的进程全部杀死
- 监控进程活动
- 命令
- grep 'model name' /proc/cpuinfo
查看cpu核心数
- top
动态显示系统信息
- -d //设置刷新频率,默认每5秒刷新一次
- -b //批模式翻屏显示,与-n N合用,可以指定显示翻N屏
- uptime
显示负载均衡情况
- 软件管理
- 控制服务和守护进程
- 命令
- systemctl COMMAND name.service
对服务进行控制
- start
- stop
- restart
- status
- try-restart
- reload
- is-active
- is-enable
- enable
- disable
- poweroff
- 软件管理
- 命令
- rpm [options] PATH
rpm安装命令和卸载
- -i //安装
- -v //显示详细信息
- -h //显示安装进度条
- -e NAME //卸载NAME这个软件包
- --test //测试安装
- --nodeps //忽略依赖关系
- --replacepkgs //重新安装
- -Uvh //有新版本则升级,否则重装
- -Fvh //有新版本则升级,否则退出
- --oldpackage //降级
- --force //强制执行
- --nodigest //不检查包的完整性
- --nosignature //不检查包的来源合法性
- rpm [options] APK_NAME
rpm查询命令
- -q NAME //查询指定包是否已安装
- -qa //查询已安装的所有包
- -qi NAME //查询指定包的说明信息
- -ql NAME //查询指定软件包安装后生成的文件列表
- -qf PATH //查询指定的文件是由哪个rpm包安装生成的
- -qc NAME //查询包安装的配置文件
- -qd NAME //查询包安装的帮助文档
- -q --scripts NAME //查询指定包中包含的脚本
- -q --changelog COMMAND //查询COMMAND制作的日志
- -qpi PATH //查询指定未安装包的说明信息
- -qpl PATH //查询未安装的软件包会产生哪些文件
- rpm [options] APK_NAME
包校验
- -V NAME //指定需要校验的包
- 校验标识
- S:文件的容量大小是否被改变
- M:文件的类型或者文件的属性是否被修改
- 5:MD5这一种指纹加密的内容已经不同
- D:装置的主次代码已经改变
- L:路径已经改变
- U:文件的所属主已被修改
- G:文件的所属组已被修改
- T:文件的创建时间已被修改
- -K FILE //检查指定包有无密钥信息
- --import GPG //导入密钥文件
- rpm OPTIONS
重建数据库
- --rebuilddb //重建数据库,一定会重新建立
- --initdb //初始化数据库,没有建立时才会建立
- yum工具的使用
- yum工作原理
- yum服务端:提供了createrepo工具,用于将rpm包中spec文件的基本信息整理成一个“清单”
- yum客户端:解析配置文件,并把服务端的“清单”保存到
/var/cache/yum
下,根据“清单”来确定安装包的名字、版本号和依赖包等,最后再拉取包安装
- yum的元数据
- 存放位置:repodata目录
- 包含文件及功能
- primary.xml.gz :当前仓库所有rpm包的列表;依赖关系;每个rpm包安装生成的文件列表
- filelists.xml.gz :当前仓库所有rpm包的所有文件列表
- other.xml.gz :额外信息,rpm包的修改日志
- repomd.xml :记录的是primary.xml.gz、filelists.xml.gz、other.xml.gz这三个文件的时间戳和检验和
- comps*.xml :rpm包分组信息
- yum配置文件
- 配置文件位置
- /etc/yum.conf
为所有仓库提供全局配置
- /etc/yum.repos.d/*.repo
为仓库的指向提供配置
- yum的repo配置文件中可用变量
- $releaseversion :当前OS发行版的主版本号
- $arch :平台类型
- $basearch :基础平台
- *.repo文件编辑内容
- [Repo_Name]
仓库名称
- name:
描述信息
- baseurl:{ ftp:// | http:// | file:// }
仓库路径
- enabled:{ 0 | 1 }
仓库是否开启
- gpgcheck:{ 0 | 1 }
是否检查包来源合法性
- gpgkey=
gpg校验文件路径
- /etc/yum.conf文件编辑内容
- cachedir=/var/cache/yum/releasever
缓存目录
- keepcache={ 0 | 1 }
是否开启缓存软件包
- debuglevel=2
调试级别
- logfile=/var/log/yum.log
日志文件目录
- exactarch=1
检查平台是否兼容
- obsoletes=1
检查包是否废弃
- gpgcheck=1
检查来源是否合法
- plugins=1
是否启动插件
- tolerant={ 0 | 1 }
容错功能,自动忽略已安装的包
- 命令
- yum [options] [command] [package]
- ————!options!————
- --nogpgcheck //不检查包来源合法性
- -y //自动允许操作
- -q //静默模式
- --diablerepo=repoidglob //临时禁用此处指定的repo
- --enablerepo=repoidglob //临时启用此处指定的repo
- --noplugins //禁用所有插件
- ————!command!————
- info //列出包详情
- list //列表
- all //默认项
- available //列出未安装的包
- installed //列出已安装的包
- update //升级
- updates //可用升级
- downgrade //降级
- remove //卸载
- erase //卸载
- clean //清理缓存
- repolist //显示启用的repo列表摘要
- install //安装
- reinstall //重装
- createrepo //创建yum仓库的元数据信息
- 源码安装包管理
- 源码包分类
- 源码格式(需要编译安装)
- 二进制格式(解压后可以直接使用)
- 源码包的安装
- 准备编译环境
./configure
(定制组件)
- 指定安装路径,例如
--prefix=/opt/nginx-1.12
- 启用或禁用某项功能,例如
--enable--ssl
- 和其他软件关联,例如
--with-pcre
- 检查安装环境
- 检测通过后生成Makefile文件
make
- 执行make命令进行编译,可以使用
-j
指定CPU核心数
- 按Makefile文件进行编译,编译称可执行二进制文件
- 生成各类模块和主程序
make install
- 创建环境变量
- 方法一:修改
/etc/profile
export PATH=$PATH:/usr/local/...
- 方法二:在
/etc/profile.d/
下创建 .sh
文件
export PATH=$PATH:/usr/local/...
- 增添额外库文件路径
- 在
/etc/ld.so.conf.d/
下创建 .conf
文件
- 在文件中写入库文件目录
- 使用
ldconfig
命令立即生效
- Apache服务器
- httpd的特性
- 2.2版本特性
- 事先创建进程
- 按需维持适当的进程
- 模块化设计,核心比较小,各种功能通过模块添加(包括PHP),支持运行时配置,支持单独编译模块
- 支持多种方式的虚拟主机配置,如基于ip的虚拟主机,基于端口的虚拟主机,基于域名的虚拟主机等支持https协议(通过mod_ssI模块实现)
- 支持用户认证
- 支持基于IP或域名的ACL访问控制机制
- 支持每目录的访问控制(用户访问默认主页时不需要提供用户名和密码,但是用户访问某特定目录时需要提供用户名和支持URL重写
- 支持MPM (Multi Path Modules,多处理模块)。用于定义httpd的工作模型(单进程、单进程多线程、多进程、多进程单线程、多进程多线程)
- 2.4版本特性
- MPM支持运行DSO机制(Dynamic Share Object,模块的动态装/卸载机制),以模块形式按需加载支持event MPM,eventMPM模块生产环境可用
- 支持异步读写
- 支持每个模块及每个目录分别使用各自的日志级别
- 每个请求相关的专业配置,使用来配置
- 增强版的表达式分析器
- 支持毫秒级的keepalive timeout
- 基于FQDN的虚拟主机不再需要NameVirtualHost指令
- 支持用户自定义变量
- 支持新的指令(AllowOverrideList)
- 降低对内存的消耗
- 2.4版本新增模块
- mod_proxy_fcgi
- mod_ratelimit
- mod_remoteip
- 基于ip的访问控制机制被改变,不再支持使用Order,Deny,Allow来做基于IP的访问控制
- 工作模式
- prefork(默认)
- 多进程模型,预先生成进程,一个请求用一个进程响应
- 一个主进程负责生成n个子进程,子进程也称为工作进程
- 每个子进程处理一个用户请求,即使没有用户请求,也会预先生成多个空闲进程
- worker
- 基于线程工作,一个请求用一个线程响应(启动多个进程,每个进程生成多个线程)
- event
- httpd的自带工具
- htppasswd
- basic认证基于文件实现时,用到的帐号密码生成工具
- apachectl
- httpd自带的服务控制脚本,支持start,stop,restart
- apxs
- 由httpd-devel包提供的,扩展httpd使用第三方模块的工具
- rotatelogs
- suexec
- 访问某些有特殊权限配置的资源时,临时切换至指定用户运行的工具
- ab
- apache benchmark,httpd的压力测试工具
- httpd工作目录
/var/log/httpd/access.log
:访问日志
/varlog/httpd/error_log
:错误日志
/var/www/html/
:站点文档目录
/usr/lib64/httpd/modules/
:模块文件路径
/etc/httpd/conf/httpd.conf
:主配置文件
/etc/httpd/conf.modules.d/*.conf
:模块配置文件
/etc/httpd/conf.d/*.conf
:辅助配置文件
- 命令
- curl命令
- 支持功能
- https认证
- http的POST/PUT等方法
- ftp上传
- kerberos认证
- http上传
- 代理服务器
- cookies
- 用户名/密码认证
- 下载文件断点续传
- socks5代理服务器
- 通过http代理服务器上传到ftp服务器
- curl [options] [URL]
- -A,--user-agent //设置用户代理发送给服务器
- --basic //使用http基本认证
- --tcp-nodelay //使用TCP_NODELAY选项
- -e,--referer //来源网址
- --cacert //CA证书(SSL)
- --compressed //要求返回时压缩的格式
- -H,--header
- -I,--head //只显示响应报文首部信息
- --limit-rate //设置传输速度
- -u,--user <user[:passwd]> //设置服务器的用户和密码
- -0,--http1 //使用http1.0版本,默认使用1.1版本
- -o,--output //把输出写到文件中
- -# ,--progress-bar //进度条显示当前的传输状态
- http [options]
- -l //查看静态编译的模块,列出核心中编译了哪些模块
- -M //输出一个已经启用的模块列表,包括静态编译在服务器中的模块和作为DSO动态加载的模块
- -v //显示httpd的版本
- -V //显示httpd和apr /apr-util的版本和编译参数
- -X //以调试模式运行httpd。仅启动一个工作进程,并且服务器不与控制台脱离
- -t //检查配置文件是否有语法错误
- 编译安装httpd
- http常用配置
- 切换使用MPM:
/etc/httpd/conf.modfules.d/00-mmpm.conf
- Require all granted :允许所有主机访问
- Require all deny :拒绝所有主机访问
- Require ip IPADDR :授权指定来源地址的主机访问
- Require not ip IPADDR :拒绝指定来源地址的主机访问
- Require host HOSTNAME :授权指定来源主机名的主机访问
- Require not host HOSTNAME :拒绝指定来源主机名的主机访问
- 配置虚拟主机:
/etc/httpd/conf/httpd.conf
- 启用SSL模块:
/etc/httpd/conf.modules.d/00-base.conf
- LoadModule ssl_module modules/mod_ssl.so
- 配置https:
/etc/httpd/httpd.conf
- LoadModule ssl_module modules/mod_ssl.so
- Include /etc/httpd24/extra/httpd-vhosts.conf
- Include /etc/httpd24/extra/httpd-ssl.conf
- 在httpd-vhost.conf中配置虚拟主机
- 验证服务器
systemctl status httpd
ss -antl
查看80端口是否运行
- 网络管理
- 网络接口名称组成格式
- 以太网网卡以
en
开头
- 无线网卡以
wl
开头
- 设备结构
o # 主板上集成的设备的设备索引号
s # 扩展槽的索引号
x # 基于MAC地址的命名
p<bus>s<slot> # 基于物理位置拓扑的命名
- 网卡设备的命名过程
- 1、udev,辅助工具程序/lib/udev/rename_device会根据/usr/lib/udev/rules.d/60-net.rules中的信息设定网卡名称
- 2、biosdevname会根据/usr/lib/udev/rules.d/71-biosdevname.rules中的信息设定网卡名称
- 3、通过udev检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description中的变量信息设定网卡名称
- 网络管理常用命令
- 网卡参数标识
- UP:网卡处于活动状态
- BROADCAST:支持广播
- RUNNING:网线已接入
- MULTICAST:支持组播
- MTU:最大传输单元(字节)
- inet:显示IPv4地址行
- inet6:显示IPv6地址行
- link/enther:指设备硬件(MAC)地址
- txqueuelen:传输缓存区长度大小
- RX pachets:接收的数据包
- TX packets:发送的数据包
- errors:总的收包的错误数量diuq
- dropped:由于各种原因,导致拷贝在内存过程中被丢弃
- collisions:网络信号冲突情况,值不为0则可能存在网络故障
- 路由配置命令
route
//查看当前路由表
- route -n //以数字方式显示各主机或端口等相关信息
route add [-net|-host] TARGET [netmask <MASK>] [gw <GW>] [[dev] DEV_ETH0]
添加路由
- 例子:
route add -net 172.16.12.0/24 gw 172.16.12.1 dev ens33
route add -host 172.16.12.128 gw 172.16.12.1
route del -net NET_TARGET
//删除路由
- 例子:
route del -net 172.16.12.0/24
route del -net 0.0.0.0/0 gw 172.16.12.1
- 命令
- ifconfig [options] [dev_network]
查看当前处于活动状态的所有网络接口
- dev_network //进查看“dev_network”网卡的状态
- -a //查看所有网卡状态信息,包括禁用和启用
- ip [options] OBJECT { COMMAND | help }
IP配置和查看
- link show //查看网络接口所有地址
- -s link show //显示报文统计信息
- link set DEV { up | down } //启用或禁用网络接口ip
- address add IP_ADD dev DEV //添加IP地址
- address del IP_ADD dev DEV //删除IP地址
- route add TARGET via GW dev IFACE src SOURCE_IP //添加路由
- route del TARGET //删除路由
- route show //查看路由表
- route flush //刷新路由表
- ————!OBJECT!————
- link //网络接口属性
- addr //协议地址
- route //路由
- hostname [NAME]
查看主机名或临时修改主机名,cat /etc/hostname也可以查看
- hostnamectl
查看主机信息或永久修稿主机名
- 网卡配置文件
- 路径:
/etc/sysconfig/netwkr-scripts/ifcfg-*
- 配置参数
- TYPE:接口类型
- BOOTPROTO:引导类型
- UUID:设备唯一标识
- HWADDR:硬件地址
- DEVICE:关联的设备名称,与网卡名一致
- NAME:连接名称
- ONBOOT:是否自动激活此网卡
- DEFROUTE:将接口设定为默认路由
- USERCTL:是否允许
- 路由配置文件
- 路径:/etc/sysconfig/network-scripts/route-*
- 添加路由
DEST via NEXTHOP
//方式一
- 例:
10.0.2.0/24 via 10.0.1.1
- 方式二,多行添加
ADDRESS0=10.0.2.0
NETMASK0=255.255.255.0
GATEWAY0=10.0.1.1
- DNS配置文件
- 路径:
/etc/resolv.conf
- 编辑格式
- NetworkManager管理网络
- 配置文件目录
- /etc/sysconfig/network-scripts/
- 网络管理命令
nmcli device
//查看设备状态
nmcli device show DEV_NAME
//查看指定设备的详细状态
nmcli connection
//查看连接状态
nmcli connection show DEV_NAME
//查看指定设备的详细连接状态
- 网络检测与故障排查命令
- ping [options] <ADDRESS>
检测网络连通性
- -c NUM //指定ping次数
- -i NUM //指定包的发送间隔
- -w TIME //如果ping没有回应,则在超过指定时间后退出
- host <DOMAIN>
查询DNS解析记录
- nslookup <DOMAIN>
查询DNS解析记录
- teaceroute <ADDRESS>
路由跟踪
- netstat [options]
查看网络状态
- -r //显示路由表
- -rn //以数字方式显示路由表
- -a //显示所有状态的连接
- -t //显示已建立的TCP连接
- -u //显示已建立的UDP连接
- -l //显示监听状态的连接
- -p //显示监听指定的套接字的进程
- ss [options] [FILTER]
网络状态查看,取代netstat
- ————!options!————
- -t //tcp协议相关
- -u //udp协议相关
- -w //裸套接字相关
- -x //unix套接字相关
- -l //listen状态的连接
- -a //所有
- -n //数字格式
- -p //相关的程序及PID
- -e //扩展信息
- -m //内存用量
- -o //显示计时器信息
- ————!FILTER!————
- state
- 常见TCP-STATE:
- tcp finite state machine //有限状态机
- LISTEN //监听
- ESTABLISHED //已建立的连接
- dport = //等号两边一定有空格,跟服务或对应端口
- sport =
- 磁盘管理
- 磁盘容量检查命令
- df [options]
查看磁盘容量,默认以k为单位
- -i //查看inode使用情况
- -h //以G或者T或者M人性化方式显示
- -T //查看文件类型
- du [options] <DIR or FILE>
查看目录或文件的容量,默认以k为单位
- 磁盘分区命令
- gdisk
给磁盘分区
- partprobe [DEV_PATH]
立即刷新内核/分区
- 磁盘格式化命令
- mkfs [options] <DISK_PATH>
格式化磁盘,创建文件系统
- -b //设定数据区块占用空间大小,支持1024、2048、4096 bytes每个块
- -t //用来指定什么类型的文件系统,可以是ext4、xfs等
- -i //设定inode的大小
- -N //设定inode数量,防止inode数量不够导致磁盘不足
- -L //预设该分区的标签label
- 磁盘挂载命令
- mount [options]
临时挂载
- -t //指定文件系统挂载分区,如ext4
- -a //重新读取分区配置文件
- -o [r,w] //指定挂载参数
/etc/fstab
配置文件
- 格式: 分区标识(UUID或设备路径) 挂载点 文件类型 挂载参数 是否检查 是否备份
- 挂载参数
紫色为默认值
- async //系统每隔一段时间把内存数据写入磁盘中
- sync //实时同步内存和磁盘中数据
- suid ,nosuid //允许 \ 不允许分区有suid属性
- rw ,ro //文件系统可写或只读
- exec ,noexec //允许 \ 不允许可执行文件执行
- user, nouser //允许 \ 不允许root外的其他用户挂载分区
- auto ,noauto //开机自动挂载 \ 不自动挂载
- default //使用上述默认挂载设置
- 交换分区swap
- 创建swapfile
dd if=/dev/zero of=/opt/newdisk bs=1M count=1024
- if :指定源,一般写/dev/zero
- of :指定目标
- bs :定义块大小
- count :数量
- 格式化swap分区
- 检测当前swap分区情况
- 开启新建的swap分区
- 关闭新建的swap分区