这是Linux的网络管理,软件安装,进程管理,内存和磁盘管理。
net-tools VS iproute
ifconfig
ifconfig //全部网卡
ifconfig eth0 //指定网卡eth0
CentOS 7 使用了一致性网络设备命名,以上都不匹配则使用 eth0
网卡命名则受 biosdevname 和 net.ifnames 两个参数影响
biosdevname | net.ifnames | 网卡名 | |
---|---|---|---|
默认 | 0 | 1 | ens33 |
组合1 | 1 | 0 | em1 |
组合2 | 0 | 0 | eth0 |
步骤如下:
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
注:如果上述方法无效,则需要手动修改
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3 //enp0s3为当前网卡名称
修改文件中的NMAE=和DEVICE=为eth0,同时修改文件名后缀为eth0,保存后重启。
ifconfig <接口>
ifup <接口> //打开网卡
ifdown <接口> //关闭网卡
ifconfig eth0 10.0.21.1 //修改网卡地址为10.0.21.1
ifconfig eth0 10.0.21.1 netmask 255.255.255.0 //修改网卡地址和掩码
ifup eth0 //打开网卡
ifdown eth0 //关闭网卡
route
route //解析主机名
route -n //不解析主机名
route add/del default gw <网关ip> 添加/删除默认网关
route add/del -host <指定ip> gw <网关ip> //添加/删除指定IP网关
route add/del -net <指定网段> netmask <子网掩码> gw <网关ip> //添加/删除指定网段网关
route del default gw 10.0.2.2 //删除默认网关
route add default gw 10.0.2.1 //添加默认网关
route add -host 10.0.4.2 gw 10.0.2.1 //添加明细网关
route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.2.5添加网段网关
ip addr ls
—— ifconfig
ip link set dev eth0 up
—— ifup eth0
ip addr add 10.0.0.1/24 dev eth1
—— ifconfig eth1 10.0.0.1 netmask 255.255.255.0
ip route add 10.0.0/24 via 192.168.0.1
—— route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.0.1
mii-tool eth0 //查看网卡eth0物理连接状态
ping www.baidu.com //ctrl+c停止
traceroute -w 1 www.baidu.com //-w 1 表示中间路由等待1s
mtr //直接回车进入,ctrl+c退出
nslookup www.baidu.com //由域名获得IP
telnet www.baidu.com 80 //检测到百度服务器的80端口是否畅通,quit退出
tcpdump -i any -n port 80
//-i any:任意网卡;port 80:80端口,可省略;-n:不解析为域名
tcpdump -i any -n host 10.0.0.1
//-i any:任意网卡;host 10.0.0.1:10.0.0.1主机,可省略;-n:不解析为域名
tcpdump -i any -n host 10.0.0.1 and port 80
//-i any:任意网卡;-n:不解析为域名
tcpdump -i any -n host 10.0.0.1 and port 80 -w /afile
//-i any:任意网卡;-n:不解析为域名;-w /afile:将捕获信息保存到文件afile
netstat -ntpl //查看服务监听端口
ss -ntpl //查看服务监听端口
服务管理程序分为两种,分别为SysV(service命令)和systemd(systemctl命令)。
centos7的网络管理服务有两个,分别为network服务和NetworkManage服务,其中network服务只支持service管理。
service network ststus|start|stop|restart //查看或修改network服务的状态
chkconfig --list network //查看network服务具体状态
chkconfig -level 2345 network off|on //修改network服务具体状态
systemctl list-unit-files NetworkManager.service //查看NetworkManager服务的状态
systemctl start|stop|restart NetworkManager //修改NetworkManager服务的状态
systemctl enable|disable NetworkManager //修改NetworkManager服务的状态
hostname //查看主机名
hostname c7.test //临时修改主机名为c7.test
hostnamectl set-hostname c7.test //永久修改主机名为c7.test
注:当主机名变化时,需要修改/etc/hosts文件,添加IP到主机名的映射,否则解析较慢。
网络配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 //网卡配置文件
/etc/hosts //主机配置文件
/etc/rc.local //路由配置文件
包管理器是方便软件安装、卸载,解决软件依赖关系的重要工具
rpm使用步骤
ls /dev/sr0 -l //sr0为光盘,块设备
mount /dev/sr0 /mnt //将光盘挂载到/mut
//若要取消挂载使用:
umount /mut 或 umount /dev/sr0
ls /mnt/Packages //查看光盘中的rpm包
ls /mnt/Packages | more //分页查看光盘中的rpm包,按空格键下一页
mkdir /root/rpms //新建rpms文件夹
cp vim-common-7.1.10-el7.x86-64.rpm /root/rpms //复制rpm包到指定文件夹
rpm -q vim-common //查询指定安装包
rpm -qa //查询全部安装包
rpm -i vim-common-7.1.10-el7.x86-64.rpm //安装软件安装包,需要安装包完整名称
rpm -e vim-common //卸载安装包
注:rpm安装需要手动安装依赖关系的安装包。
//备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
//下载新的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
//更新缓存
yum makecache
yum install vim-enhanced //安装vim-enhanced并安装依赖关系
yum remove vim //卸载vim
yum list //查看已安装软件包
yum update //检查当前的全部安装包是否升级
以安装openresty软件为例:
- wget https://openresty.org/download/openresty-1.15.8.1.tar.gz //下载软件包
- tar -zxf openresty-VERSION.tar.gz
- cd openresty-VERSION/ //进入软件包
- ./configure --prefix=/usr/local/openresty //运行脚本,软件安装到指定目录
- make -j2 //编译,-j2表示使用两个虚拟处理器
- make install //安装
注:以上为通用安装步骤,个别软件略有不同。
uname -r
rpm -i kernel-3.10.0
yum install kernel-3.10.0
yum update
yum install gcc gcc-c++ make ncurses-devel openssl-devel elfutils-libelf-devel
tar xvf linux-5.1.10.tar.xz -C /usr/src/kernels
//1.使用新的内核配置
cd /usr/src/kernels/linux-5.1.10/
make menuconfig/allyesconfig/allnoconfig //分别表示:菜单选择配置,全部配置,全部不配置
//2.使用当前系统内核配置
cp /boot/config-3.10.0-957.el7.x86_64 /usr/src/kernels/ linux-5.1.10/.config
make -j2 all
make modules_install //先安装内核模块
make install //再安装内核
注:查看cpu信息:lscup
grub是启动引导软件,有grub1和grub2两个版本,现使用grub2。
grub2的配置文件:
/boot/grub2/grub.cfg //一般不直接修改此文件
通常使用以下步骤修改:
/etc/default/grub //grub初级配置
/etc/grub.d //grub详细配置
grub2-editenv list //查看saved指代的内核
grep ^menu /boot/grub2/grub.cfg //文件中查找内核
grub2-set-default 0 //修改saved指代的内核
grub2-mkconfig -o /boot/grub2/grub.cfg
linux启动时,选择内核,按e进入编辑,找到
linux64 .x.x.x.x.x.x. 结尾添加single或rb.break_
ctrl+x开始
ls /sysroot //查看根目录
ls / //查看系统根目录,不是实际根目录
mount -o remount,rw /sysroot //挂载根目录
chroot /sysroot 重新root
ls / //是实际根目录
echo 111111 //显示到屏幕
echo 111111 | passwd --stdin root //传递到root密码
最后reboot
ps //当前终端的进程
ps -e //查看全部进程
ps -e | more //查看全部进程,分页显示
ps -ef //查看较详细进程信息
ps -eLF //查看最详细进程信息
pstree //显示进程树
top //动态显示进程信息
top -p 1234 //查看进程号为1234的进程信息
其中NI表示进程优先级
按1显示多核CPU状态
按s修改刷新时间
按E修改显示单位
按?x显示帮助
nice -n 10 ./a.sh //设置a.sh的优先级,进程未运行时
renice -n 15 1234 //设置1234(PID)的优先级,进程运行时
./a.sh & //进程后台运行
jobs //获取后台进程编号
fg 1 //将编号为1的后台进程调到前台
bg 1 //将编号为1的进程调到后台运行
进程通信:管道,信号。
– SIGINT 通知前台进程组终⽌进程 ctrl + c
– SIGKILL ⽴即结束程序,不能被阻塞和处理 kill -9 pid
nohup ./a.sh & //关闭终端,进程不停止
不受会话关闭影响
srceen //进入screen环境
screen -ls //查看 screen 的会话
screen -r 31557 //恢复31557会话
exit //退出screen环境
/var/log
systemctl start xx.service
systemctl stop xx.service
systemctl restart xx.service
systemctl reload xx.service
systemctl enable xx.service
systemctl disable xx.service
cd /lib/systemd/system //服务文件目录
ls -l runlevel*.target //查看服务级别,文件映射
systemctl get-default //获取当前启动级别
systemctl set-default multi-user.target //修改启动级别为字符界面
[Unit]
Requires = 新的依赖服务
After = 新的依赖服务
[Service]
[Install]
getenforce //查看SELinux状态
setenforce 0 //临时改变状态
编辑/etc/selinux/config永久修改状态,reboot生效。
//查看安全信息
ps -Z
ls -Z
id -Z
free //单位为k
free -m //单位为M
free -g //单位为G
fdisk -l //查看磁盘信息
parted -l //查看分区信息
ls -l /dev/sd? //查看磁盘类型,分块
ls -l /dev/sd?? //查看磁盘类型,分区
df -h //分区使用和挂载信息
ls -l /data/filename //查看文件大小,单位byte
ls -lh /data/filename //查看文件大小,显示单位,文件开始到结束的大小
du -h /data/filename //查看文件设计大小,显示单位,不计空洞文件
dd if=afile bs=4M count=10 of=bfile //复制afile到bfile,指定块大小为4M,数量为10
dd if=afile bs=4M count=10 seek=20 of=bfile //复制和转换一个文件,带空洞
Linux支持的文件系统:
EXT4文件系统
ls -l //查看文件权限等
ls -i //查看文件所属inode编号,第一个
文件名记录到父目录的inode中,其他信息记录在文件的inode中
touch afile //新建普通文件
echo 123 > afile //将123写入afile;du、ls大小为4k,即一个datablock大小
cp afile bfile //复制aflie,afile的inode编号不变
mv afile cfile //同目录移动afile,inode编号不变,只是改名
mv afile /data/cfile //跨目录移动afile,inode编号改变
vim afile //修改文件内容,inode编号改变,新建inode,将文件名重新链接到新inode中
echo 123 > afile //修改文件内容,inode编号不变
rm afile //删除文件,只断开文件名和inode的链接
链接(硬链接及符号链接)
ln afile bfile //将bfile文件名链接到afile的inode上,硬链接,不能跨文件系统和分区
ln -s afile cfile //新建cfile的inode,cfile的inode中保存afile的路径,符号链接,可跨文件系统和分区
链接文件的权限是777,对链接文件的权限操作会加到原文件。
facl
getfacl afle //获取文件ACL权限
setfacl -m u:username:rw afile //赋予用户username对afile文件rw的ACL权限
setfacl -m g:groupname:rx afile //赋予用户组groupname对afile文件rx的ACL权限
setfacl -x u:username:w afile //回收用户username对afile文件w的ACL权限
fdisk /dev/sdc //进入fdisk界面
帮助:m
增加分区:n
打印分区:p
保存分区:w
退出不保存:q
删除分区:d
mkfs[tab][tab] //查看可设置的文件系统类型
mkfs.ext4 /dev/sdc1 //将分区sdc1设置为ext4类型
mkdir /data //新建目录,用于挂载分区
mount // 查看mount信息
mount /dev/sdc1 /data //将分区sdc1挂载到/data目录,自动识别文件系统类型
mount -t ext4 /dev/sdc1 /data //将分区sdc1挂载到/data目录,指定文件系统类型为ext4
mount -t auto /dev/sdc1 /data //将分区sdc1挂载到/data目录,自动识别文件系统类型
总结:
/dev/sdc1 /data ext4 defaults 0 0 //被挂载点 挂载点 文件类型 . . .
parted /dev/sdc //进入parted界面
mount -o uquota, gquota /dev/sdb1 /mnt/data
chmod 1777 /mnt/data
xfs_quota -x -c ‘report -ugibh’ /mnt/data //报告u用户,g组,i节点的磁盘配额
xfs_quota -x -c ‘limit -u isoft=5 ihard=10 username’ /mnt/data //对u用户、g组,的i节点、b块,添加soft软限制、hard硬限制配额
增加交换分区
dd if=/dev/zero bs=4M count=1024 of=/swapfile //建文件
mkswap /dev/sdd1
mkswap /swapfile
swapon /dev/sdd1
swapoff /dev/sdd1
注:仅临时保存在内存中,需在/etc/fstab文件中添加才能永久生效
在文件中添加一行:
/swapfile swap swap defaults 0 0 //被挂载点 虚拟挂载点 文件类型 . . .
RAID 的常⻅级别及含义
RAID有软件RAID(mdadm)和硬件RAID两种实现方式
逻辑卷在磁盘上层。
一、新建逻辑卷
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 //创建物理卷
pvs //查看物理卷
vgcreate vgname /dev/sdb1 /dev/sdc1 //创建卷组
vgs //查看卷组
lvcreate -L 100M -n lvname vgname //在卷组vgname中添加逻辑卷lvname,大小为100M
lvs //查看逻辑卷
mkfs.xfs /dev/vgname/lvname //格式化逻辑卷lvname
mount /dev/vgname/lvname /data //挂载逻辑卷lvname到目录/data
注:仅临时保存在内存中,需在/etc/fstab文件中添加才能永久生效
在文件中添加一行:
/dev/vgname/lvname /data ext4 defaults 0 0 //被挂载点 挂载点 文件类型 . . .
二、扩展逻辑卷
vgextend vgname /dev/sdd1 //扩大卷组
lvextend -L +50G /dev/vgname/lvname //扩大逻辑卷
xfs_growfs /dev/vgname/lvname //扩大文件系统中逻辑卷
sar -u 1 10 //查看cup状态,每隔1秒采样一次,采样10次
sar -r 2 20 //查看内存状态,每隔2秒采样一次,采样20次
sar -b 1 10 //查看IO状态,每隔1秒采样一次,采样10次
sar -d 1 10 //查看磁盘状态,每隔1秒采样一次,采样10次
sar -q 1 10 //查看进程状态,每隔1秒采样一次,采样10次
chkconfig --list
一、下有3个特殊的进程,idle进程(PID = 0), init进程或systemd进程(PID = 1)和kthreadd(PID = 2)
idle进程由系统自动创建, 运行在内核态。
idle进程其pid=0,其前身是系统创建的第一个进程,也是唯一一个没有通过fork或者kernel_thread产生的进程。完成加载系统后,演变为进程调度、交换。
init进程由idle通过kernel_thread创建,在内核空间完成初始化后, 加载init程序, 并最终用户空间。
由0进程创建,完成系统的初始化. 是系统中所有其它用户进程的祖先进程
Linux中的所有进程都是有init进程创建并运行的。首先Linux内核启动,然后在用户空间中启动init进程,再启动其他系统进程。在系统启动完成完成后,init将变为守护进程监视系统其他进程。
二、终端,泛指一切能控制计算机的输入接口,包括串口线的硬件终端、也包括类似windows的图形界面,默认运行linux服务器的字符界面;而在Linux字符界面上,软件终端又分成标准终端设备tty1-tty6 ,和虚拟终端pts 。像是我们使用的ssh连接的终端、在图形界面打开的终端程序,都属于虚拟终端,它们和tty设备的区别就是没有设备编号,所以叫做“虚拟”终端