VMware 虚拟机的网络连接方式
桥接模式
和主机使用相同的网段,
方便使用,可以和其他系统通讯,
但如果数量多会造成 IP 地址冲突
NAT 模式
虚拟机和主机使用不同的网段,
虚拟机与外网连接时使用 NAT 的方式,
不会造成外部环境的 IP 地址冲突
仅主机模式
虚拟机是独立的主机,
不能访问外网
linux 目录结构及作用
树状目录文件,/为跟目录
一切介为文件
/bin
存放命令
/sbin
管理员使用的系统管理程序
/home
存放普通用户的主目录
/root
超级用户的主目录
/lib
系统开机所需要的最基本的动态连接共享库
/lost+found
当系统非法关机时,该目录会存放文件
/etc
所有的系统管理所需要的配置文件和子目录
/usr
用户的应用程序和文件都存放在该目录下,类似 program files
/boot
启动 linux 的核心文件
/proc
虚拟的目录,是系统内存的映射,访问这个目录来获取系统的信息(和内核相关
/srv
service,存放一些服务启动后需要提取的数据(和内核相关
/sys
内核相关
/tmp
用来存放临时文件
/dev
管理设备,和硬件相关
/media
和 u 盘,光驱相关
/mnt
用于临时挂载
/opt
存放安装包,默认空
/usr/local
安装过后存放的位置
/var
存放日志,不断扩充的文件存放在此
selinux
安全子系统
linux 的启动以及运行级别
GRUB(待完善)
操作系统引导程序,可以让用户在多个不通操作系统中选择启动的操作系统
还可以向操作系统内核传递参数
安装在/boot 中(boot 保存文件主要为 linux 内核,内存映像
GRUB 通过引导 boot 中的文件建立内核运行环境
/boot/grub2/grub.cfg 是 grub 的配置文件
GRUB 界面提供了两个选项
一个是正常启动系统
一个是启动系统的救援模式
启动过程
- 开机自检
- 从 MBR 中读取 GRUB(引导程序)
- GRUB 根据配置文件显示引导菜单
- 如果选择 linux,则加载 linux 内核文件
- 当内核载入内存后,GRUB 任务完成。CPU 开始执行 linux 内核代码,建立内核运行环境
-
内核代码执行完后,开始执行 linux 的第一个进程——systemd,进程号是 1
- 启动后,读取/etc/systemd/system/default.target(该文件设置系统的运行级别)
linux 运行级别
运行级别 | 名称 | 作用 |
---|---|---|
init0 | poweroff.target | 关机 |
init1 | rescue.target | 单用户模式 |
init2 | multi-user.target | 多用户,但是没有网络 |
init3 | Multi-user.target | 完全多用户模式 |
init4 | multi-user.target | 无使用 |
init5 | graphical.target | X11,对应图形化界面 |
init6 | reboot.target | 重启 |
查看当前运行级别
runlevel
N 的位置代表 上一次运行的级别
3 的位置代表 目前运行的界别
GUI 的安装
安装 gnome 包
yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
更新系统运行的级别
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.targ
*开机默认以gui启动通过建立软连接的方式
init 5 *临时进入gui界面
yum 配置
本地 yum 配置
临时挂载
mkdir /mnt/sr0
mount /dev/sr0 /mnt/sr0
df
进入 yum.repo.d 备份文件
mkdir /etc/yum.repo.d/backup
cp -f /etc.yum.repos.d/*.repo /etc/yum.repos.d/backup
删除文件,剩下 Media
rm /etc/yum.repos.d/*
修改 media
把文件修改为挂载的位置
enabled 改为 1
清除和重建缓存
yum clean all
yum makecache
阿里云 yum 源配置
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
保留阿里源,删除备份其他
安装
yum install -y vim
卸载
yum remove 软件名称
查看安装包是否在服务器上
yum list | grep 要查询的安装包
RPM 指南
Red Hat Package Manager
类似于 window 的 setup.exe
包的查询
rpm -qa | grep 包的名称 *查询是否安装了该包
名称的解析
el7 代表使用于 centos7 的系统
firefox 软件的名称
68.10.0 版本号
查看已安装的软件包
rpm -qa | more
查询是否安装
rpm -q 软件名称
查询软件具体信息
rpm -qi 软件名称
查询软件安装位置
rpm -ql 软件名称
查询文件所属的软件包
rpm -qf 文件路径名
对软件进行卸载
rpm -e 软件名
rpm -e --nodeps 软件名 *对软件进行强制删除(
对软件进行安装
rpm -ivh rpm包的路径
参数 | 说明 |
---|---|
-i | 安装软件时显示软件包的相关信息 |
-v | 安装软件显示命令的执行过程 |
-h | 安装软件时输出 hash 记号:# |
--force | 强制安装,当软件包已经安装但需要重新安装时可使用 |
--nodeps | 禁止检查依赖关系 |
对软件进行升级
rpm -Uvh 安装包名称
参数 | 说明 |
---|---|
-U | 升级指定的软件 |
vim 编辑器
vim 有三种模式
-
命令模式
控制光标移动,可对文本进行复制(yy),黏贴(p),删除(dd),查找
-
末行模式
保存或退出文档,设置编辑环境
-
编辑模式
正常的输入,编辑文档
参数 | 说明 |
---|---|
yy | 复制整行 |
5yy | 复制从光标开始的 5 行 |
p | 黏贴 |
dd | 删除(剪切)光标所在行 |
5dd | 删除(剪切)从光标开始的往下 5 行 |
u | 撤销上一步操作 |
替换 | 替换内容待完善 |
末行模式中的命令
参数 | 说明 |
---|---|
:q | 退出不保存 |
:wq | 保存并退出 |
:q! | 强制退出不保存 |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:w | 保存 |
:整数 | 跳转到该行号 |
?字符串 | 从下往上搜索该字符串 |
/字符串 | 从上往下搜索该字符串 |
删除光标所在行(dd
黏贴(p
时间日期查询设置
显示当前日期(date
date *显示当前日期
date “+%Y-%m-%d” %H:%M:%S*显示年月日
date “+%Y" *显示完整年(2022)如果时小写y则显示22
设置日期
date -s ”2022-6-20 19:15:15“ *将日期修改为引号内的日期
显示日历(cal
cal 2077 *显示2077年的日历
硬件时间(hwclock
hwclock --show
修改硬件时间
hwclock --set --date "2022-07-31 23:57:00"
将硬件时间和系统时间进行同步
hwclock --hctosys
搜索查找
搜索(find
find 搜索范围 选项
find /mnt -name a.txt *在mnt目录下搜索名称为a.txt的文件
find /home -user xin *在home目录搜索属于用户xin的文件
find / -size +2M *在根目录下搜索大于2m的文件
快速定位文件路径(locate
通过数据库搜索文件路径,需要定期更新
updatedb *建立locate数据库
locate a.txt *定位a.txt的位置
过滤(grep,|)
cat a.txt | grep yes *查找a.txt中是否有yes
cat a.txt | grep -n yes *与上一条意思相同,但-n可以显示所在行号
cat a.txt | grep -ni yes *-i的含义时不区分大小写
grep -v *对过滤的内容进行反向选择
磁盘查询
查看目前磁盘使用情况(df
df -h
查看文件或目录的磁盘占用情况(du
参数 | 说明 |
---|---|
-h | 更加直观的表示 |
-a | 对全部文件进行统计 |
-s | 只显示大小的汇总 |
--max-depth=1 | 子目录深度 |
-c | 最后加上总计 |
du -ach
对目录下的文件进行统计(ls
ls -l /home | grep "-" | wc -l
*第一个字符为-的才属于文件,wc -l是对数量进行统计
ls -l /home | grep "d" | wc -l *对目录个数进行统计
ls -lR /home | grep "-" | wc -l *进行递归统计
通配符的使用
可以进行模糊搜索
参数 | 说明 |
---|---|
* | 代表匹配零个或多个 |
? | 匹配单个字符 |
[0-9] | 代表匹配 0~9 之间的单个字符 |
ls -l /dev/sd*
分区
分区基础
MBR
最大支持 2TB
系统只能安装在主分区
最多支持四个主分区
扩展分区要占一个主分区
GPT
最大支持 18EB
指出无限多个主分区
文件系统
ext3 修复时间长,无法保证百分百不丢失
ext4 可以无限多子目录,提高了读写效率,最高 1EB
XFS 最牛逼,极快的恢复可能被破坏的文件,18EB
扇区
硬盘是由大量扇区组成的,每个扇区为 512 字节
第一个扇区保存着主引导记录与分区表信息
主引导记录占用 446 字节 分区表64 字节 结束符2 字节
分区表记录每一个扇区就需要16 字节 所以最多只有 4 个分区信息可以写入第一个扇区,这四个分区便是主分区
为了满足分区不足的需求,可以将第一个扇区的分区表中 16 字节拿出来指向另外一个分区,这就是扩展分区
硬盘说明
[硬盘类型][硬盘属性][硬盘分区]
参数 | 代表硬盘类型 |
---|---|
hd | IDE 硬盘 |
sd | SCSI 硬盘 |
参数(此处待确认,似乎存在错误 | 硬盘属性 |
---|---|
a | 基本盘 |
b | 从属盘 |
c | 辅助主盘 |
d | 辅助从属盘 |
数字 代表分区的编号
查看系统的分区和挂载的情况(lsblk
lsblk -f *可查看uuid
格式化硬盘(mkfs
参数 | 说明 |
---|---|
-t [ext2/ext3/ext4/xfs/...] | 设定文件系统类型 |
-c | 检查磁盘是否存在坏道 |
mkfs -t ext4 硬盘名称
临时挂载(mount
mount 硬盘名称 挂载位置
永久挂载
1:
vim /etc/fstab *进入fstab,里面储存挂载情况
2:
编辑格式
硬盘名称 挂载点 ext4 defaults 0 0
*第一个0的位置表示是否对内容进行备份
*第二个0的位置表示是否进行自检,
0为不进行自检
1表示每次都运行
2表示非正常关机或达到最大加载
3:
mount -a *自动挂载
创建新的分区(使用 fdisk
- 输入 n 添加新的分区
- 输入 p 创建主分区,输入 e 创建扩展分区
- 输入主分区编号(1~4)
- 输入容量(+几 G)
- 输入 w 后回车,分区创建成功
- 输入 p 进行验证
创建新的 swap 分区(mkswap
压缩解压缩
压缩和解压缩(gzip,gunzip
gzip a.txt *将a.txt压缩为a.txt.gz,且不保留源文件
gunzip a.txt.gz *解压文件
zip 和 unzip
zip -r a.zip /home/ *把home整个目录压缩为a.zip
unzip -d /opt/tmp/ a.zip *把a.zip解压到/opt/tmp中
打包指令(tar
参数 | 说明 |
---|---|
-c | 创建压缩文件 |
-x | 解压 |
-f | 指定压缩后的文件名 |
-z | 使用 Gzip 压缩或解压 |
-v | 显示压缩或解压的过程 |
tar -zcvf a.tar.gz a.txt b.txt *压缩并打包a.txt b.txt 压缩包的文件名为a.tar.gz
tar -zcvf home.tar.gz /home/ *也可以对目录进行打包压缩
tar -zxvf a.tar.gz *解压
tar -zxvf home.tar.gz -C /opt/ *指定解压到/opt/中,需要加-C,如果不加-Cz
权限指南
第一个字符代表含义
参数 | 说明 |
---|---|
d | 该文件是目录类型 |
l | 该文件为连接 |
b | 设备文件,该文件已块为单位 |
c | 设备文件,该文件是字节单位 |
s | socket |
p | 管道文件(待完善 |
- | 普通文件 |
rwx 作用到文件
参数 | 说明 |
---|---|
r(4) | read 读权限 |
w(2) | write 写权限,可以修改,但无法删除文件 |
x(1) | execute 执行权限,可以运行,删除文件 |
rwx 可使用数字进行表示
rwx 作用到文件(待完善
r:read 可以读取,ls 查看目录内容
w:write 目录内可以创建删除重命名
x:execute 可以进入该目录
rwx 再不同位置表示的含义
第一个 rwx(u):代表文件所有者权限
第二个 rwx(g):代表文件所在组的用户拥有的权限
第三个 rwx(o):代表文件其他组用户拥有的权限
数字的含义
如果是文件,表示硬链接的数量
如果是目录,表示子目录的个数
改变文件权限(chmod
chmod u=rwx,g=rx,o=x 文件名称
参数 | 说明 |
---|---|
+ | 增加权限 |
- | 减少权限 |
= | 赋予这些权限 |
参数 | 说明 |
---|---|
u | 所有者 |
g | 所有组 |
o | 其他人 |
a | 所有人 |
设置 SBIT 特殊权限位
使得只有文件所有者有权限删除,其他用户即使有 rwx 权限,也无法删除该文件
chmod o+t
设置文件的隐藏权限(chattr
参数 | 说明 |
---|---|
i | 无法对文件进行修改 |
a | 仅允许追加,补充内容,无法删除和覆盖 |
S | 文件内容变更后利己同步到硬盘 |
s | 彻底从硬盘中删除,不可恢复 |
u | 当删除文件时仍然保留数据,方便恢复 |
... |
查看文件的隐藏权限(lsattr
管理文件的 ACL 规则(setfacl
setfacl -Rm u:jack:rwx /root
*u代表user
*jack位置填写用户名
*rwx代表给予此用户的权限
*空格后填写赋予该用户权限的文件夹
参数 | 说明 |
---|---|
-R | 递归 |
-m | 针对普通文件 |
查看文件夹的 ACL 规则(getfacl
用户管理
UID
0 代表该用户为管理员
1~999 代表是系统用户,默认服务程序都由独立的系统用户负责运行,防止某个服务程序出现漏洞被提取权限至正太服务器
1000 开始为普通用户
UID 不能冲突,每个用户的 UID 都是唯一的
登录注销
登录(su
建议带-
,意味着完全切换到新用户,不保留原账号的信息
su xin *登录到名称为xin的账号
给普通用户赋予额外的 root 权限(sudo,visudo
为什么要使用 sudo?
由于 su 命令切换用户时,需要输入 root 用户的密码,导致 root 用户的密码可能泄露导致的不安全
而 sudo 用户验证的是普通用户的密码
sudo 如何使用
当普通用户登录时,可使用sudo
获得 root 用户的权限,但 root 用户需要将普通用户添加到 suduers 文件中
如果在 sudoers 文件中没有普通用户,但普通用户尝试使用 sudo 获取权限时,root 会收到提示
root 用户使用visudo
管理 sudoers
第三个 all,代表允许该用户使用什么指令
all 代表全部允许,如果需要只允许使用某个指令,先使用whereis
查看该指令的文件夹位置,然后在 sudoers 中的 all 部分修改为该文件夹的路径
注销(logout
logout *注销当前用户,该命令只在级别3有效(init 3)
家目录
每个用户都拥有一个对应的家目录,当使用用户进行登录时,就会进入其对应的家目录
用户 xin 的目录
用户的添加和删除
创建用户(useradd
useradd [参数]
参数 | 说明 |
---|---|
-d | 指定用户的其实目录,不指定的话默认为/home |
-g | 指定用户所属的组,可以指定多个组 |
-G | 指定用户的附属群组,每个群组使用【,】进行隔开 |
-m | 建立用户的主目录 |
-M | 不要建立用户的主目录 |
-s | 指定用户的 shell |
-u | 指定用户的 uid |
由于 Linux 用户必须属于一个组,所以当添加用户并且没有指定组时,系统会自动生成一个与用户同名的组
useradd xin *添加用户名为xin的用户(同时生成一个名为xin的组
useradd -d /user/name xin *将用户名为xin的用户添加到name这个目录下
useradd -g s404 xin 将用户xin添加到名称为s404的组中
设置用户的密码(passwd
参数 | 说明 |
---|---|
-l | 锁定用户,禁止登录 |
-u | 接触锁定 |
--stdin | 允许通过标准输入修改用户的密码 |
-d | 使用户可以用空密码登录系统 |
-e | 强制其下次登录修改密码 |
-S | 显示用户的密码是否被锁定 |
echo '1' | passwd --stdin jack
*使用标准输入为jack直接把密码修改为1
passwd xin *为xin修改一个密码
对用户进行删除(userdel
userdel -r xin *连同xin的家目录一起删除
userdel xin *之删除用户,不删除家目录
查询用户信息(id
id 用户名
uid 用户的 id 号
gid 所在组的 id 号
切换用户(su
su 用户名
可以切换到高权限用户,比如
su root *切换到root用户
高权限用户切换到低权限用户不需要密码
返回原来的用户,输入 exit
查看当前用户(whoami
whoami *可显示当前登录的用户
添加用户组(groupadd
groupadd 组名
groupadd xin *添加一个名为xin的组
删除用户组(groupdel
groupdel 组名
groupdel xin *删除名为xin的组
修改用户信息(usermod
可以对已有用户信息进行修改
usermod [参数]
参数 | 说明 |
---|---|
-d | 对用户的主目录进行修改 |
-e | 修改账户的有效期 |
-g | 修改用户的组 |
-G | 修改用户的附属组 |
-l | 修改用户的名称 |
-L | 锁定用户的密码,使密码无效 |
-s | 修改用户使用的 shell |
-u | 修改用户 id(uid) |
-U | 解除密码锁定 |
usermod -g 405 xin *将xin的组切换为405
配置信息相关的几个文件
用户配置信息
/etc/passwd
用户名:密码:用户名 id:组 id:家目录:shell 文件
在该文档种密码由 x 代替,具体密码由于安全原因加密保存在了 shadow 中
shadow 只有 root 用户有权限进行访问
组配置信息
/etc/group
可以看到该组名的组 id
口令配置信息
存放密码和登录信息,是加密的
/etc/shadow
用户登录记录查询
查看当前登入主机的用户信息(who
who
查看登录记录(last
该记录以日志形式保存在系统中,可以篡改,只能参考
last
组管理
linux 用户都属于一个特定的组
组的创建(groupadd
groupadd 组名
用户添加到组(useradd
useradd -g 组名 用户名
查看文件所有者(ls
ls -ahl *查看文件的所有者
修改文件的所有者(chown
chown 用户名 要改变所有者的文件名
改变了文件的所有者,但是组未发生改变
修改文件所在组(chgrp
chgrp 组名 要修改的文件
进阶修改(同时修改组和所有者)
chown 新的所有者:新的组 文件名 *同时修改所有者和组
-R 如果是目录,递归修改其中的所有者和所有组
文件目录类指令
查看当前工作路径(pwd
显示当前工作的绝对路径
查看当前目录的所有内容(ls
ls -a *查看所有文件,包括隐藏的
ls -l *以列表的形式,显示完整信息
切换目录(cd
绝对路径与相对路径的概念
绝对路径:完整的整一个路径,显示了从最高级目录到目标位置
相对路径:从当前的目录到目标位置(相当于不用打全,缺少了上一级
cd ~ *回到家目录
cd ~username *切换至某个用户的家目录
cd .. *回到上一级目录
cd - *f
创建目录(mkdir
mkdir /mnt/sr0 *在mnt目录创建一个新的叫做sr0的目录(只能创建一个目录
mkdir -p /mnt/sr/sr0 *相比于上一条命令,能一次性创建多级目录(一次性创建多个不存在的目录
删除目录(rmdir
rmdir /mnt/sr0 *删除sr0目录(无法删除存在内容的目录,即无法删除非空目录
rm -rf /mnt/sr0 *可以删除非空目录(强制删除
创建空文件和修改文件时间(touch
touch hello.txt *创建一个名为hello的txt空文件
touch a.txt b.txt *可以一次性创建多个文件
参数 | 说明 |
---|---|
-a | 修改读取时间 |
-m | 修改修改时间 |
-d | 同时修改读取时间和修改时间 |
拷贝(cp
cp a.txt /mnt/b *将当前目录里的a.txt拷贝到/mnt/b里
cp -r test/ xin/ *拷贝目录需要加上一个-r,否则无法执行
cp *强制覆盖不提示,否则若已存在需要输入y继续
删除文件或目录(rm
rm -r *递归删除整个文件夹
rm -f *强制删除不提示
rm a.txt *删除a.txt,会提示是否删除
rm -rf a/ *删除a整个目录
移动文件或重命名(mv
mv a.txt b.txt *将a重命名为b(前提是该目录存在a.txt)
mv a.txt /mnt/sr0 *将a移动至/mnt/sr0中,名字为a,原文件也存在
以只读的方式查看文件(cat
该命令适合查看较小的文件
cat -n *查看文件的内容,显示行号
cat -n 文件名称 | more *分页显示
全屏方式按页显示文本的内容(more,less
二者的区别在于:less 只加载需要显示的内容,不是一次加载一整个文件
参数 | 说明 |
---|---|
enter | 可以一行一行的查看 |
ctrl+b | 查看上一页 |
ctrl+f | 查看下一页 |
空格 | 查看下一页 |
f | 直接退出,显示跳过多少行 |
:f | 显示当前是该文件的第几行 |
输出重定向和追加(指令>和指令>>
>会将原本的文件内容覆盖
>> 不会覆盖文本的文件内容,追加到文件的尾部
ls -l > a.txt *把ls -l显示的内容重定向(写入)到a.txt当中
ls >> a.txt *在a.txt中增加ls显示的内容(原本的内容还存在
echo “内容” > a.txt *将双引号中的内容写入到a.txt当中
该指令还可以和cat指令结合
如果要将错误的提示输出重定向到一个文件中
2>
可以用于重定向输入报错的内容,可用于记录报错的内容
ls -l xxx 2> 文件名
输出内容到控制台(echo
echo $PATH *输出环境变量到控制台
显示文件的头部(head
head -n 5 文件名 *显示文件的前5行,默认显示前10行
tail(显示文件尾部)
tail a.txt *显示文件的尾部10行
tail -n 5 a.txt *显示文件尾部5行内容
tail -f a.txt *显示a.txt的实时所有更新,监控的作用(可用于日志监控
查看文件的行数,字数,字节数(wc
参数 | 说明 |
---|---|
-l | 显示行数 |
-w | 显示单词数量 |
-c | 显示字节数 |
查看文件的属性(stat
可以查看文件的各种时间
stat 文件名
最近访问时间表示最近是否有通过 vim,cat 来查看该文件
最近更改表示最近是否有使用 vim,echo 等命令来修改文件
最近改动表示最近是否有对文件进行修改,不管是属性上的修改还是文件内容的修改
最近访问和最近改动都可以通过 touch 进行修改,但 touch无法修改最近改动时间,相反最近改动时间会记录下你 touch 修改时间的时间
软连接,类似于快捷方式(ln
ln -s 原文件或目录 软链接名称
ln -s /mnt/sr0 guazai *在当前目录下创建一个去往/mnt/sr0的软连接
cd guazai/ *会前往/mnt/sr0,使用pwd查询所在位置则是 /创建软连接时的目录/guazai
rm -rf guazai *删除名为guazai的软连接
注意!!删除时不能带/,否则删除整个文件夹
查看命令的输入历史(history
能显示执行过的 1000 条命令
可以在/etc/profile 中的 HISTSIZE 修改记录的条数
history -c *清空所有历史命令记录
查看到命令的行数后,可以直接使用!行数
来执行之前执行过的指令
网络指南
修改主机名称
文件位置为/etc/hostname
直接进入该文件进行编辑
重启后配置生效
hostname *查看主机名称
静态 IP 配置(ifcfg-eth
网卡参数文件为
/etc/sysconfig/network-scripts/ifcfg-eth
文件内容
修改 BOOTPROTO
修改为静态获取 IP static
指定 IP
IPADDR=
GATEWAY=
DNS1=
重启网络服务
service network restart
查看系统网络情况(netstat
参数 | 说明 |
---|---|
-a | 显示所有的 socket |
-n | 直接使用 IP 地址 |
-p | 显示正在使用 socket 的程序名称 |
-l | 显示监控中服务器的 socket(显示端口 |
-t | 显示 tcp 端口 |
-u | 显示 udp 端口 |
socket:TCP/IP 的 API
netstat -an *按照一定顺序排列输出
netstat -p *显示哪个进程在调用
netstat -anp *查看所有网络服务
netstat -at *显示所有的tcp服务
netstat -au *显示所有的udp服务
netstat -ln *以数字的形式显示监控中的端口
netstat -plnt *以数字的形式显示监控中的tcp端口
ping
测试目标主机或域名是否可达
ping -f *极限测试,大量且快速的发送大量数据给目标主机,观察回应
ping —R *记录路由过程
查看当前网络接口状态(ifconfig
ifconfig
路由表(route
查看路由表
route -n
添加和删除路由
route add -net IP地址 netmask 子网掩码 gw 网关
route del -net IP地址 netmask 子网掩码 gw 网关
telnet
明文的方式远程登录客户端程序
可用于确定远程端口的服务状态
telnet [IP] [port]
下载网络文件(wegt
下载工具
支持断点续传(将下载的文件划分为多个部分,当出现断开下载的状况时,不用从头重新下载整个文件)FTP,HTTP 协议的下载
wegt [参数] [目标网站,软件]
参数 | 说明 |
---|---|
-c | 断点续传 |
待完善 |
抓包(tcpdump
参数 | 说明 |
---|---|
-vv | 输出详细的报文信息 |
-w | 报文文件 |
-i | 指定监听的网络接口 |
-s | 设置数据包抓取的长度,不设置话默认 68 字节 |
待完善 |
tcpdump -vv -w test.pcap -i eth0 -s0 *在eth0抓取数据包并保存到test.pcap文件中
防火墙管理(待完善
内核工作原理
通过 netfilter 框架实现
netfilter 为网络协议定义了一套钩子函数,当数据包经过协议栈的关键点时会被进行调用
然后把数据包和钩子函数作为参数传递给框架
钩子函数:在一个事件触发的时候,系统捕获了事件,然后执行一些操作
可以访问在正常情况下无法访问的消息
本质 用于处理系统消息
服务指南(systemctl)
systemd 中的服务是由文件控制的
systemd 中使用的是单元配置文件,而不是脚本
关于 systemctl 的启动
systemd 是并行启动的技术,所有服务尽可能并行启动,使用缓冲池的方式解决服务的依赖性
同时尽可能少的启动服务,提高启动的速度
systemd 是按需启动的,只有服务被请求时才会启动服务,请求结束后便会进行关闭,节约系统资源
systemd 相比 system V,当父进程被结束后,子进程也会被关闭(利用 Cgroup 实现,由于子进程创建时会自动继承父进程的 Cgroup,所以他们的 Cgroup 是相同的,systemd 可以通过查询 Cgroup,找到所有的子进程进行关闭)
关于循环依赖(待完善
关于 systemctl 日志
systemd 对日志系统也进行了升级,使用二进制进行保存;
同时还具有安全性提高,可以指型高,资源消耗少,可扩展,结构简单等特性
扩展:
syslog 日志不安全原因在于日志消息由进程自主产生,syslog 不会验证消息的来源是否属实,可被冒充
日志消息也没有严格的格式,自动化处理日志困难
关于 unit
systemd 将启动过程抽象为一个个的 unit(单元)
systemctl list-units *可以查看units
每一个 unit 后都带有后缀,service 表示该 unit 是一个后台服务进程
一般 unit 会储存在 /etc/systemd/system 和 /usr/lib/systemd/system 中
etc 目录供系统管理员使用,usr 通常是安装程序使用
可以在 usr 下查看 unit 文件
启动,停止,重启,重载 服务
systemctl start 服务名称
systemctl stop 服务名称
systemctl restart 服务名称
systemctl reload 服务名称
服务状态查询
systemctl status 服务名称
服务开机自启动相关
查看服务是否自动启动
systemctl is-enabled 服务名称
设置开机自启动
systemctl enable 服务名称
关闭开机自启动
systemctl disable 服务名称
在系统中查看那些服务开机自启动
cd /etc/systemd/system/multi-user.target.wants/
ls
设置启动模式(可参考 linux 启动)
systemctl set-default mulit-user.target *设置为完全多用户
systemctl set-default graphical.target *设置为图形化
任务调度指南(crontab 待完善
当有些任务需要在特定时间执行时,便可使用任务调度帮助自动执行
定期执行程序,所以必须有执行的权限
crontab -e *执行文字编辑器设置定时表
crontab -r *删除目前的定时表
crontab -l *列出当前的定时表
五个占位符的含义
f1 f2 f3 f4 f5 Program
f1:表示分钟
f2:表示小时
f3:表示月份中的第几日
f4:表示月份
f5:表示一个星期中的第几天
program:表示执行的程序
定时表中的格式
*/1 * * * * 运行的脚本,或者应该执行的语句
服务(service)管理
服务本质是一个进程,通常会监听某一些端口,等待其他程序的请求
又称守护进程
查看服务状态
service 服务名称 status
启动服务
service 服务名称 start
重启服务
service 服务名称 restart
停止服务
service 服务名称 stop
检测端口是否侦听
telnet ip 端口
查看服务
setup *图形化界面查看服务,并且可以设置服务的开机自启动
ls -l /etc/init.d *在命令行界面查看服务
给各个服务设置运行级别(chkconfig)
可以查看,设置服务的自启动
设置完毕后需要进行重启,才会生效
chkconfig --list *可以看到在各个级别下所有服务的自启动情况
chkconfig 服务名称 --list *查看该服务的自启动状态
chkconfig --level 级别 服务名称 on/off *设置服务在某个级别的自启动状态
chkconfig --level 5 sshd on *设置sshd在级别5自启动
进程指南
进程介绍
每执行一个程序都会有一个进程
而每一个进程都会对应一个父进程
前台 目前看得到的
后台 看不见的
查看进程(ps
ps -a *显示当前终端所有的进程信息
ps -u *以用户的格式显示进程信息
ps -x *显示后台进程运行的参数
ps -ef *查看程序的父进程
pstree *树状图查看进程
各个名称代表的含义
名称 | 含义 |
---|---|
USER | 用户名称 |
PID | 进程号 |
PPID | 父进程编号 |
CPU | 进程占用 CPU 的百分比 |
MEM | 进程占用物理内存的百分比 |
VSZ | 进程占用的虚拟内存大小 |
RSS | 进程占用的物理内存大小 |
TTY | 终端名称的缩写 |
STAT | 进程的状态 |
R 正在执行 S 禁止状态 Z 僵死进程
终止进程(kill
将进程进行终止,支持通配符
-9 为强制终止的含义
kill 进程PID *终止该PID的进程
killall 进程名称 *终止所有该名称的进程
kill -9 进程pid *强制终止该PID进程
查看系统的负载信息(uptime
uptime
负载值越低越好,尽量不要长期超过 1,生产环境不要超过 5
任务管理器(top
类似于任务管理器
d 修改刷新的时间 或 d 者
top -d 10 *修改为10秒刷新一次
u 专门监控某一个用户
k 终止进程
P 按照 PID 进行排序
M 按照内存使用进行排序
C 按照 CPU 使用进行排序
Comments NOTHING