一、Linux 的 grub 配置文件、查看进程、进程控制、进程通信、守护进程、screen、systemctl、SELinux、内存及磁盘管理、内存查看、磁盘分区、文件系统管理、分区及挂载、交换分区、RAID、逻辑卷 LVM、sar、Shell、Shell 脚本格式、管道、重定向、变量赋值、变量引用及作用范围、环境变量及配置
grub
配置文件,如下所示:
/etc/default/grub
/etc/grub.d/
/boot/grub2/grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
- 进程的概念,如下所示:
- 进程是运行中的程序,从程序开始运行到终止的整个生命周期是可管理的
C
程序的启动是从main
函数开始的,int main(int agrc, char *argv[])
- 终止的方式并不唯一,分为正常终止和异常终止
- 正常终止也分为从
main
返回、调用exit
等方式 - 异常终止分为调用
abort
、接收信号等
- 进程的查看命令,如下所示:
- 查看命令,
ps、pstree、top
- 进程也是树形结构,进程和权限有着密不可分的关系
- 进程的优先级调整,如下所示:
- 调整优先级,
nice
范围从 -20 到 19,值越小优先级越高,抢占资源就越多;renice
重新设置优先级 - 进程的作业控制,
jobs
、&
符号
- 进程间通信,如下所示:
- 信号是进程间通信方式之一,典型用法是终端用户输入中断命令。通过信号机制停止一个程序的运行
- 使用信号的常用快捷键和命令,
kill -l
SIGINT
通知前台进程组终止进程ctrl + c
SIGKILL
立即结束程序,不能被阻塞和处理kill -9 pid
- 守护进程,如下所示:
- 使用
nohup
与&
符号配合运行一个命令,nohup
命令使进程忽略hangup
挂起信号 - 守护进程
daemon
和一般进程的差别 - 使用
screen
命令,screen
进入screen
环境,ctrl+a d
退出screen
环境 screen -ls
查看screen
的会话screen -r sessionid
恢复会话
- 服务管理工具
systemctl
,服务提供常见功能的守护进程的集中管理工具,service、systemctl
。 - 服务管理工具
systemctl
,systemctl
常见操作,如下所示:
systemctl start|stop|restart|reload|enable|disable
服务名称- 软件包安装的服务单元
/usr/lib/systemd/system/
SELinux
,如下所示:
MAC
强制访问控制与DAC
自主访问控制- 查看
SELinux
的命令,getenforce、/usr/sbin/sestatus、ps -Z and ls -Z and id -Z
- 关闭
SELinux
,setenforce 0
、/etc/selinux/sysconfig
- 内存使用率、磁盘使用率的查看,如下所示:
- 内存使用率查看,常用命令
free、top
- 磁盘使用率查看,常用命令
fdisk、df、du、du 与 ls
- 常见文件系统,
Linux
支持多种文件系统,常见的有,ext4、xfs
和NTFS
,其中NTFS
需要安装额外软件。 ext4
文件系统,ext4
文件系统基本结构比较复杂,超级块、超级块副本、i 节点和数据块。- 磁盘分区与挂载,如下所示:
- 常用命令,
fdisk、mkfs、parted、mount
- 常见配置文件,
/etc/fstab
- 用户磁盘配额,如下所示:
xfs
文件系统的用户磁盘配额quota
mkfs.xfs /dev/sdb1
mkdir /mnt/disk1
mount -o uquota,gquota /dev/sdb1 /mnt/disk1
chmod 1777 /mnt/disk1
xfs_quota -x -c 'report -ugibh' /mnt/disk1
xfs_quota -x -c 'limit -u isoft=5 ihard=10 user1' /mnt/disk1
- 交换分区,如下所示:
- 增加交换分区的大小,
mkswap、swapon
- 使用文件制作交换分区,
dd if=/dev/zero bs=4M count=1024 of=/swapfile
RAID
与软件RAID
技术,RAID
的常见级别及含义,如下所示:
RAID 0 striping
条带方式,提高单盘吞吐率RAID 1 mirroring
镜像方式,提高可靠性RAID 5
有奇偶校验RAID 10
是RAID 1
与RAID 0
的结合
- 逻辑卷管理,如下所示:
- 逻辑卷和文件系统的关系
- 为
Linux
创建逻辑卷 - 动态扩容逻辑卷
- 系统综合状态查询,如下所示:
- 使用
sar
命令查看系统综合状态 - 使用第三方命令查看网络流量,
yum install epel-release、yum install iftop、iftop -P
Shell
,如下所示:
Shell
是命令解释器,用于解释用户对操作系统的操作Shell
有很多,cat /etc/shells
CentOS 7
默认使用的Shell
是bash
Linux
的启动过程,BIOS-MBR-BootLoader(grub)-kernel-systemd-系统初始化-shell
。Shell
脚本,如下所示:
UNIX
的哲学,一条命令只做一件事- 为了组合命令和多次执行,使用脚本文件来保存需要执行的命令
- 赋予该文件执行权限
chmod u+rx filename
- 标准的
Shell
脚本要包含哪些元素,如下所示:
Sha-Bang
- 命令
'#'
号开头的注释chmod u+rx filename
可执行权限- 执行命令,
bash ./filename.sh、 ./filename.sh、source ./filename.sh、 .filename.sh
- 内建命令和外部命令的区别,如下所示:
- 内建命令不需要创建子进程
- 内建命令对当前
Shell
生效
- 管道与管道符,如下所示:
- 管道和信号一样,也是进程通信的方式之一
- 匿名管道,也是管道符,是
Shell
编程经常用到的通信工具 - 管道符是
'|'
,将前一个命令执行的结果传递给后面的命令,如ps | cat、echo 123 | ps
- 重定向符号,如下所示:
- 一个进程默认会打开标准输入、标准输出、错误输出三个文件描述符
- 输入重定向符号
'<'
,如read var < /path/to/a/file
- 输出重定向符号
'>' '>>' '2>' '&>'
,如echo 123 > /path/to/a/file
- 输入和输出重定向组合使用,
cat > /path/to/a/file << EOF、I am $USER、EOF
- 变量的定义,变量名的命名规则,如下所示:
- 字母、数字、下划线
- 不以数字开头
- 变量的赋值,为变量赋值的过程,称为变量替换,如下所示:
- 变量名=变量值,如
a=123
- 使用
let
为变量赋值,如let a=10+20
- 将命令赋值给变量,如
l=ls
- 将命令结果赋值给变量,使用
$()
或者``,如letc=$(ls -l /tec)
- 变量值有空格等特殊字符可以包含在 ‘’ 中
- 变量的引用,如下所示:
${变量名}
称作对变量的引用echo ${变量名}
查看变量的值${变量名}
在部分情况下可以省略为$变量名
- 变量的作用范围,如下所示:
- 变量的默认作用范围
- 变量的导出,
export
- 变量的删除,
unset
- 系统环境变量,如下所示:
- 环境变量,每个
Shell
打开都可以获得到的变量,set
和env
命令、$? $$ $0、$PATH、$PS1
- 位置变量,
$1 $2 ... $n
- 环境变量配置文件,配置文件
/etc/profile、/etc/profile.d/、~/.bash_profile、~/.bashrc、/etc/bashrc
。