1、关于环境搭建
通过安装虚拟机和安装WSL来实现Linux环境的搭建,不过目前主流的方式还是通过安装虚拟机,WSL只是起到一个辅助效果。
虚拟机的原理是虚拟硬件,相当于在计算机上虚拟出另一台计算机。
WSL的原理是在Windows系统上构建一个子系统,它可以直接调用计算机的硬件,等于一套硬件上有两个操作系统。
2、关于虚拟机快照功能
如果你喜欢玩游戏,那一定知道存档这个功能。快照就像存档一样,把当前的状态保存下来,需要时回到这个保存的状态下,可以用在反复测试或者程序出错时使用。虚拟机不论关机或开机都能制作快照,推荐关机制作快照,要快上很多。
快照制作:
3、目录结构
Windows的顶级目录是C盘D盘这种,而Linux的顶级目录是“ / ”
4、命令
-
Linux中命令有通用的格式
command [-options][parameter]
-
[ ]中的内容表示是可选的,不一定要写
-
-options 命令的选项用来控制命令的细节
-
parameter 命令的参数用来指向命令的目标
-
示例1
ls -l /home/linuxym001 ls是命令,-l是选项,/home/linuxym001是参数 意思是以列表的形式显示/home/用户目录的内容
-
示例2
cp -r test1 test2 cp是命令,-r是选项,test1、test2是参数 意思是复制文件夹test1成为test2
4.1 ls命令使用
-
ls 以平铺的形式显示当前目录下的非隐藏文件
-
ls 命令语法
ls [-a -l -h] [文件路径]
-
ls -a 表示显示当前目录下所有的文件(包括隐藏文件,隐藏文件的前面都有“ . ”)
-
ls -l 表示以列表的形式显示目录下的内容
-
除了以上用法外,选项其实是可以混合使用的,比如下面三种用法都是一样的效果
ls -a -l ls -al ls -la
-
-h只能混合使用,用于列出文件大小
如 ls -lh 文件路径
4.2 cd命令使用
-
使用cd进入到指定的目录,因此我们使用cd来完成切换操作
-
cd命令语法
cd [文件路径]
-
进入根目录
cd /
-
cd 没有写入参数,则回到 home(用户的主目录)
4.3 pwd命令使用
- pwd命令是用于查看当前工作目录
4.4 相对路径、绝对路径和特殊路径符
相对路径和绝对路径
-
切换到home下的Desktop
绝对路径实现:cd /home/linuxym001/Desktop 相对路径实现:cd Desktop
特殊路径符
-
符号“ . ”表示当前目录
当前位置home,切换到Desktop,使用符号“ . ”,命令 cd ./Desktop ,运行结束工作目录为/home/linuxym001/Desktop
-
符号“ ~ ”表示home
当前位置/home/linuxy001/Desktop,使用符号“ ~ ”,命令 cd ~ ,运行结束工作目录为/home/linuxym001(也就是home)
-
符号“ . . ”表示返回上一级
当前位置home,使用符号“ .. ”,命令cd ..,运行结束工作目录为/home
4.5 mkdir命令使用
-
作用:创建文件夹
-
语法
mkdir [-p] 文件路径
-
使用mkdir在/home/linuxym001下,利用相对路径、绝对路径和特殊路径符创建test1、test2、test3
相对路径:mkdir Desktop/test1 绝对路径:mkdir /home/linuxym001/Desktop/test2 符号“.”:mkdir ./test3 符号“~”:mkdir ~/test4
-
-p的作用是用来创建一个层级的目录
mkdir aa1/aa2/aa3,报错 mkdir -p aa1/aa2/aa3,成功
4.6 touch命令使用
-
作用:用于创建文件,相对、绝对、特殊路径符都可以使用
-
语法
touch 文件路径
-
创建test.txt文件
touch test.txt
4.7 cat命令使用
-
作用:查看文件内容
-
语法
cat 文件路径
-
示例
查看test.txt中的内容:cat test.txt
4.8 more命令使用
-
作用:查看文件内容,可以进行翻页操作,适用于看内容比较多的文件,相对、绝对、特殊路径符都可以使用,按空格翻页查看,退出按q
-
语法
more 文件路径
-
示例
查看test.txt中的内容:more test.txt
4.9 cp命令使用
-
作用:复制文件/文件夹
-
语法
cp [-r] 参数1 参数2
-
-r 用于复制文件夹
-
参数1 :文件路径,表示被复制的文件/文件夹
-
参数2 :文件路径,表示复制去的地方
-
示例
复制test1粘贴为test2:cp -r test1 test2
4.10 mv命令使用
-
作用:移动文件/文件夹
-
语法
mv 参数1 参数2
-
参数1 :文件路径,表示被移动的文件/文件夹
-
参数2 :文件路径,表示移动去的地方,如果没有,则重命名被移动文件/文件夹
-
示例
将文件夹test2移动到home下的Desktop文件夹中:mv test2 ~/Desktop
4.11 rm命令使用
-
作用:删除文件/文件夹
-
语法
rm [-r -f] 参数1 参数2 .......参数N
-
-r 用于删除文件夹
-
-f 用于强制删除,root用户下使用(不会弹出确认删除提示信息)
通过 su-root 并输入密码切换到root用户(超级管理员) 输入 exit 退回普通用户
-
参数表示要删除的文件或文件夹(用空格隔开删除多个文件/文件夹)
一次性删除三个文件:rm -r test1 test2 test3
-
rm支持通配符,用于作模糊匹配
删除test开头的文件/文件夹:rm -r test* 删除test结尾的文件/文件夹:rm -r *test 删除包含test的文件/文件夹:rm -r *test*
4.12 which命令使用
-
作用:查看一系列所使用的命令程序文件存放在哪里
-
语法
which 要查找的命令
-
示例
which cd which ls which pwd which cat which ......
4.13 find命令使用
-
作用:搜索指定的文件(可以根据文件名或文件大小搜索)
-
语法
根据文件名:find 起始路径 -name "被查找的文件名" 根据文件大小:find 起始路径 -size +|-n[kMG] + - 表示大于和小于 n 表示大小数字 kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
-
find支持通配符,用作模糊匹配
查找以test开头所有文件:find / -name "test*" 查找以test结尾所有文件:find / -name "*test" 查找包含test的所有文件:find / -name "*test*"
-
示例
从根目录开始搜索大于1G的文件:find / -size +1G
4.14 grep命令使用
-
作用:根据关键字匹配检查,打印匹配到的行
-
语法
grep [-n] 关键字 文件路径
-
-n 显示匹配到的行的行号
-
关键字表示需要匹配的关键字,使用""包裹起来
-
文件路径表示要作匹配的内容位置,可以作为内容输入端口
-
示例
不显示行号:grep "aaa" test.txt 显示行号:grep -n "aaa" test.txt
4.15 wc命令使用
-
作用:统计文件的字节、字符、单词和行数
-
语法
wc [-c -m -w -l] 文件路径
-
-c 统计bytes(字节)数量
-
-m 统计字符的数量
-
-w 统计单词的数量
-
-l 统计行数
-
文件路径表示被统计的文件,可作为内容输入端口
-
示例
统计字节数:wc -c test.txt 统计字符数:wc -m test.txt 统计单词数:wc -w test.txt 统计行数:wc -l test.txt
4.16 管道符“ | ”
-
作用:将左边执行的结果作为右边命令的输入
-
示例1
通过cat查看test中的内容,返回cat执行的结果,这个结果被输入到grep文件路径的位置匹配test.txt中字符串aaa所在行:cat test.txt | grep "aaa" 文件路径(实际使用不需要写文件路径,这里为了方便理解)
-
示例2
通过cat查看test中的内容,返回cat执行的结果,这个结果被输入到wc文件路径的位置统计test.txt内容的行数:cat test.txt | wc -l 文件路径(实际使用不需要写文件路径,这里为了方便理解)
-
示例3
除了使用cat还可以使用其他命令,通过ls -l以列表形式排列文件作为结果,将结果输入到wc文件路径的位置统计test1中的文件数:ls -l test1 | wc -l 文件路径(实际使用不需要写文件路径,这里为了方便理解)
4.17 echo命令使用
-
作用:输出指定的内容
-
语法
echo "输出的内容"
-
示例
echo "Hello Linux"
4.18 反引号“ ` ”
-
作用:被包裹的字符串作为命令去输出
-
示例
echo `Hello Linux`
4.19 重定向符“>”、“>>”
-
作用:将符号左边执行的结果覆盖/追加到符号右边的指定文件中
-
示例 “ > ”
使用echo输出Hello Linux这个结果,将结果覆盖到test.txt文件覆盖前内容:cat test.txt ------> aaabbbccc 覆盖后结果:echo "Hello Linux" > test.txt ------> Hello Linux
-
示例 “ >> ”
使用echo输入Hello Linux这个结果,将结果追加到test.txt文件追加前内容:cat test.txt ------> aaabbbccc 追加后内容:echo "Hello Linux" >> test.txt ------> aaabbbcccHello Linux
4.19 tail命令使用
-
作用:查看文件尾部内容,默认查看10行
-
语法
tail [-f -num] 文件路径
-
-f 表示持续更新,如果有新的内容追加进来,就会进行更新
tail -f test.txt
-
-num表示查看的行数(不写默认10行),这里的num指的是具体的数字
tail -num test.txt
5 vi/vim编辑器
-
vi/vim是visual interface的简称,是Linux最经典的文本编辑器
-
vi.vim就像Windows下的文本文档一样
-
vim是vi的增强版,兼容vi的所有指令,不仅能编辑文本,还具有shell程序编辑的功能,可以用不同颜色的字体来辨别语法正确性。
-
vi/vim的三种工作模式
命令模式:命令模式下,键盘上输入的内容,以命令去执行,不能进行自由文本编辑 输入模式:输入模式下,可以进行自由文本编辑 底线模式:用于操作文件的保存和退出
-
使用vi/vim编辑器创建和编辑文件(已有文件则编辑,没有则创建)
vi 文件路径 vim 文件路径
-
vi/vim打开默认进入命令模式,输入“ i ”进入输入模式,输入“ : ”进入底线模式, 在输入模式中按“ esc ”返回命令模式,在底线模式中按“ esc ”返回命令模式,按“ w ”保存,按“ q ”退出编辑器
-
命令模式基础快捷键
可以直接进入输入模式的快捷键: 光标位置进行输入 - - - > i 光标之后进行输入 - - - > a 行开头进行输入 - - - > I 行结尾进行输入 - - - > A 光标下一行插入空白行进行输入 - - - > o 光标上一行插入空白行进行输入 - - - > O 回到命令模式 - - - > esc 操作文档的快捷键: 键盘上下左右控制光标的移动也可以使用 光标向上 - - - > j 光标向下 - - - > k 光标向左 - - - > h 光标向右 - - - > l 移动光标至行开头 - - - > 0 移动光标至行结尾 - - - > $ 向上翻页 - - - > pageup(PgUp) 向下翻页 - - - > pagedown(PgDn) 进入搜索模式 - - - > / 向上搜索 - - - > n 向下搜索 - - - > N 删除光标所在行内容 - - - > dd n是数字,表示删除当前光标向下n行 - - - > 3dd 复制当前行 - - - > yy n是数字,表示复制当前光标向下n行 - - - > 3yy 粘贴复制内容 - - - > p 撤销 - - - > u 反向撤销 - - - > ctrl + r 跳到首行 - - - > gg 跳到行尾 - - - > G 当前行开始向下全部删除 - - - > dG 当前行开始向上全部删除 - - - > dgg 光标开始,删除本行开头 - - - > d0 光标开始,删除本行结尾 - - - > d$
-
底线模式基础快捷键
保存并退出 - - - > wq 仅保存 - - - > w 仅退出 - - - > q 强制退出 - - - > q! 设置行号 - - - > set nu 设置粘贴模式 - - - > set paste
6 Linux的root用户
普通用户在许多地方权限是受限的,普通用户一般在其home目录是不受限制的,大多数地方普通用户只有只读和执行权限,并无修改权限,因此出了home目录要做修改,就要切换到root用户
-
语法
su [-] 用户名
-
“ - ”符号是可选的,表示切换后加载环境变量
-
用户名表示要切换的用户,可以省略,省略默认进到root用户
-
切换用户后,通过exit退回到上一个用户,也可以使用快捷键 ctrl + d
root功能很强大,长期使用,可能带来损坏,保险起见我们可以使用sudo命令,来为普通命令临时赋予root权限
-
语法
sudo 普通命令
-
并不是所有用户都可以使用sudo,使用sudo需要为普通用户配置sudo认证
首先切换到root用户,输入visudo,在打开的文件的最后一行添加 用户名 ALL=(ALL) NOPASSWD:ALL 保存退出。这样就为用户配置好了sudo认证。
6.1 用户、用户组
-
Linux系统中可以
配置多个用户 配置多个用户组 用户可以加入多个用户组中
-
Linux中关于权限的管控级别有2个级别,分别是
针对用户的权限控制 针对用户组的权限控制
比如:一个文件,控制某个用户可以访问,也可以控制某个用户组可以访问
-
关于用户组的命令都需要在root用户下进行
创建用户组:groupadd 用户组名 删除用户组:groupdel 用户组名
-
关于用户的命令都需要在root用户下进行
-
创建用户
useradd [-g -d] 用户名 -g 表示创建用户后指定加入的组,不指定-g则创建一个与用户名相同的组并加入 -d 指定用户的路径,不指定-d则默认在home目录 例:useradd test -g yhz1 -d /home/test1
-
删除用户
userdel [-r] 用户名 -r 删除用户的同时,删除用户目录
-
查看用户所属组
id [用户名] 如果不加用户名,则查看当前用户所属的组
-
修改用户所属组
usermod -aG 用户组 用户名 指定用户加入用户组
6.2 getent命令
-
作用:查看当前系统中有哪些用户和用户组
-
语法1
getent passwd
其中共有7份信息
用户名:密码(x):用户ID:组ID:描述信息:HOME目录:执行终端(默认bash)
-
语法2
getent group
其中有3份信息
组名称:组认证(显示为x):组ID
6.4 查看权限控制信息
通过查看可以知道文件具体信息,如下图
这里划分了三个区域1、2、3
1 表示所属用户的权限
2 表示所属用户组的权限
3 表示其他用户的权限
r 表示只读
w 表示修改
x 表示执行
6.4.1 chmod命令
-
作用:修改文件/文件夹权限信息
-
语法
chmod [-R] 权限 文件/文件夹
-
-R表示对文件夹包括文件夹下全部内容进行同样操作
-
示例
将文件权限修改为rwxr-x--x:chmod u=rwx,g=rx,o=x test.txt 其中u表示user所属用户权限,g表示group组权限,o表示other其他用户权限 将文件夹以及文件夹内全部内容权限设置为rwxr-x--x:chmod -R u=rwx,g=rx,o=x test
-
用这种方式更改权限显的有些麻烦,所有权限可以用数字代替
r记为4,w记为2,x记为1 0表示 --- 1表示 x 2表示 w 3表示 2+1=-wx 4表示 r 5表示 4+1=r-x 6表示 4+2=rw- 7表示 4+2+1=rwx
-
示例
将文件的权限修改为rwxr--r-x:chmod 745 test
6.4.2chown命令
-
作用:修改文件的用户/用户组(普通用户无法修改用户/用户组,所有要需要root用户执行)
-
语法
chow [-R] [用户] : [用户组] 文件/文件夹
-
-R表示对文件夹和文件夹的全部内容进行同样的操作
-
用户表示修改的所属用户
-
用户组表示修改所属的用户组
-
示例
修改文件的用户:chown root test.txt 修改文件的用户组:chown : root test.txt 修改文件的用户和用户组:chown root : root test.txt 修改文件夹及文件夹下全部内容的用户和用户组:chown -R root : root test
7 Linux操作技巧
7.1 强制停止
-
作用:程序运行时想停止它,命令输入错误时
ctrl + c
7.2 退出或登出
-
作用:退出账户的登录,提出程序的专属页面。不能用于退出vi/vim
ctrl + d
7.3 历史命令搜索
-
作用:查看历史输入过的命令
history
-
可以通过 !命令前缀,自动匹配上一次前缀命令
-
输入内容进行匹配搜索
ctrl + r
7.4 光标移动快捷键
跳到命令开头:ctrl + a
跳到命令结尾:ctrl + e
向左跳一个单词:ctrl + 键盘左键
向右跳一个单词:ctrl + 键盘右键
7.5 清屏
-
快捷键
ctrl + l
-
也可以使用命令clear实现
8 安装软件
-
CentOS中使用的时yum管理器,而Ubuntu使用的是apt管理器
-
yum语法:
yum [-y] [ install | remove | search ] 软件名称
-
apt语法:
apt [-y] [install | remove | search ] 软件名称
-
-y 表示自动确认,无需手动确认安装和卸载过程
intsall:安装 remove:卸载 search:搜索
-
yum/apt 都需要root权限和互联网
9 systemctl命令
-
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
-
能被systemstl管理的软件,一般也称之为:服务
-
语法
systemctl start | stop | status | enable | disable 服务名
-
start:启动 stop:关闭 status:查看状态 enable:开启开机自启 disable:关闭开机自启
-
举例系统内置的服务:
NetworkManager:主网络服务 network:副网络服务 firewalld:防火墙服务 sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
-
部分第三方软件安装后会集成到systmctl
安装apt软件:yum -y install ntp 安装httpd软件:yum -y intsall httpd
10 软链接
-
类似于windows中的快捷方式
-
语法
ln -s 文件路径1 文件路径
-
-s 表示软链接
-
文件路径1表示:被链接的文件/文件夹
-
文件路径2表示:链接去的目的地
11 日期、时区
11.1 日期
-
作用:查看系统的时间
-
语法
date [-d] [+格式化字符串]
-
格式化字符串:通过特定的标记,显示日期的形式
%Y 年 %y 年份后两位数字(00.99) %m 月份 %d 日 %H 小时 %M 分钟 %S 秒 %s 自 1970-01-01 00:00:00 到现在的秒数
-
-d按照给定的形式显示日期,还可用于日期计算
date -d "+1 day":显示后一天日期 date -d "-1 day":显示前一天日期 date -d "+1 month":显示后一个月日期 date -d "-1 month" :显示前一个月日期 date -d "+1 year" :显示后一年日期 date -d "-1 year" :显示前一年日期
-
支持的时间标记
年:year 月:month 日:day 时:hour 分:minute 秒:second
11.2 时区
-
使用root权限,将时区修改为东八区
rm -f /etc/localtime ln -s /usr/share/zoneinfo/Asia/SiChuan /etc/localtime
11.3 npt程序
-
可以通过ntp程序自动校准时间
安装ntp:yum -y install ntp
-
启动开机自启
systmctl enable nptd
-
ntp会定期校准时间,也可以手动校准时间(需要root权限)
ntpdate -u 校准网站 比如:ntpdate -u ntp.aliyun.com
12 IP地址、主机名
12.1IP、主机名
12.1.1 IP地址
每一台联网计算机都有一个IP地址,用于与其他计算机通讯
IP地址有两个版本v4版本和v6版本
v4版本的地址格式是:a: b: c: d,其中abcd表示0~255的数字,例如:192.168.1.1
可以通过命令:ifconfig查看本机ip地址,如果无法使用命令,则安装:yum -y install net-tools
12.1.2 主机名
每台电脑除了对外联网的IP以外,还有主机名
无论是Windows还是Linux,都可以设置主机名
查看主机名:hostname
修改主机名:hostnamectl set-hostname 主机名(需要root权限)
12.1.3 域名解析
-
网站访问流程
Windows:网址 --> C:\Windows\System32\drivers\etc\hosts文件(检查是否有记录)/ 联网询问公开DNS服务器是否有记录 --> 打开网站 Linux:网站 --> /ect/hosts文件(检查是否有记录)/ 联网询问公开DNS服务器是否有记录 --> 打开网站
总结先访问本机记录,再联网去DNS服务器询问
12.2 虚拟机配置固定IP
-
为什么需要固定IP
当前虚拟机的Linux系统,IP地址是通过DHCP获取的 DHCP:动态获取IP地址,每次重启设备都会获取一次,可能会导致IP地址频繁变更 原因1:我们需要远程连接到Linux系统时,如果IP频繁变更,修改适配很麻烦 原因2:配置了虚拟机IP地址和主机名映射,如果IP频繁更改,也需要频繁更新映射关系
-
配置固定IP步骤
在VMware Workstation中配置IP地址网关和网段(IP地址的范围) 在Linux系统中手动修改配置文件,固定IP
-
在root权限下使用vim /etc/sysconfig/network-scripts/ifcfg-ens33 进入文件将dhcp改为static 添加 IPADDR IP地址 NETMASK 子网掩码 GATEWAY 网关 DNS1 域名解析

13 网络传输
13.1 下载和网络请求
13.1.1 ping命令
-
作用:检查网络服务是否是可联通状态
-
语法
ping [-c num] ip或主机名
-
-c 表示检查的次数,不适应-c则一直检查
-
IP或主机名表示被检查的服务器的IP地址或主机名
-
示例
ping -c 3 www.baidu.com
13.1.2 wget命令
-
作用:非交互式下载器,可以在命令行内下载网络文件
-
语法
wget [-b] url
-
-b表示后台下载,将日志写入工作目录wget-log
-
url表示下载链接
-
后台下载时可以通过 tail -f wget-log查看下载进度
-
示例
下载文件:wget 文件链接
13.1.3 curl命令
-
发生http网络请求,用于下载文件、获取信息等
-
语法
curl [-O] url
-
-O表示用于下载文件、当url是下载链接时,可用此选项保存文件
-
url表示要发起网络请求的地址
-
示例
发起请求:curl 网址 下载请求:curl -O 下载链接
13.2 端口
-
端口:是设备与外界交流的出入口,端口分为:物理端口和虚拟端口
物理端口:又称之为接口,如USB、RJ45、HDML等 虚拟端口:指计算机内部不可见的,用来操作系统和外部交互使用的
-
计算机程序之间的通讯,通过IP只能锁定到计算机,不能锁定具体的程序,通过端口可以锁定计算机的程序,确保程序之间沟通
假如IP地址是小区号,而端口是门牌号
-
Linux系统有多大65535个端口号,分为3类来使用
-
公认端口:1 ~ 1023,用于一些系统内置和知名程序的预留使用 如:SSH服务的22端口,HTTPS服务的443端口,非特殊需要,不要占用这个范围的端口
-
注册端口:1024 ~ 49151,通常可以随意使用 如:自己写了一个程序,它需要网络通讯,就可以使用这个范围的端口
-
动态端口:49152 ~ 65535,通常不会固定绑定程序,只是程序对外进行网络链接时,临时使用 如:两台计算机的软件进行通讯,A计算机是注册端口长期绑定端口号5661,B计算机向A计算机的程序 发起访问,B计算机的程序随机绑定端口50001,下次B计算机再次访问A计算机程序,端口号还会发生改变
13.2.1 nmap命令
-
作用:查看端口占用情况
-
语法
nmap IP地址
-
使用nmap命令前,需要安装
安装nmap:yum -y install nmap
-
示例
查看本机的端口占用情况:nmap 127.0.0.1
13.2.2 netstat命令
-
作用:查看指定端口的占用情况
-
语法
netstat -anp | grep 端口号
-
使用netstat命令前,需要安装
安装net-tools:yum -y install net-tools
-
示例
查看端口号6000:netstat -anp | grep 6000
14 进程管理
- 程序运行在操作系统中,是被操作系统所管理。为了管理运行的程序,在运行时会被操作系统注册为一个“进程”,并且给每个进程分配进程号(进程ID)
14.1 ps 命令
-
作用:查看指定进程
-
语法
ps [-e -f]
-
-e表示显示全部进程
-
-f表示以完全格式展示信息
-
UID - - - > 进程所属用户 PID - - - > 进程号 PPID - - - > 进程父ID C - - - > 进程占用百分比 STIME - - - > 进程启动时间 TTY - - - > 启动此进程终端序号,如过显示“?”,表示非终端启动 TIME - - - > 进程占用cpu时间 CMD - - - > 进程对应的名称或启动路径或启动命令
14.2 kill命令
-
作用:关闭进程
-
语法
kill [-9] 进程ID
-
-9表示强制关闭,不使用此选项,会发送信号要求进程关闭,是否关闭就要看进程自身处理机制
15 主机状态监控
15.1 top命令
-
作用:查看CPU、内存使用情况
-
语法
top
-
选项
-p 只显示某个进程信息 -d 设置刷新时间,默认5s -c 显示COMMAN完整信息 -n 指定刷新次数,比如top -n 3(刷新三次退出) -b 以非交互模式运行,以批次执行top,(一般配合-n输出几次信息,并将信息输入到指定的文件中,如:top -d -n 3 > 1.txt) -i 不显示任何闲置(idle)或无用(zombie)的进程(显示在使用的) -u 查找特定用户启动的进程
15.2 进程信息
-
top:命令名称,08:10:24:当前系统时间,up 4:58:启动4分58秒,3 users:3个用户登录,load average:1、5、15分钟负载情况
-
Tasks:202个进程,1 running:1个进程在运行,201 sleeping:201个在睡眠,0 stopped:0个停止,0 zombie:0个僵尸进程
-
%Cpu(s):cpu使用率,us:用户cpu使用率,sy:系统cpu使用率,ni:高级优先进程占用cpu时间百分比, id:空闲cpu率, wa:IO等待占有率, hi:cpu硬件中断率, si:cpu软件中断率, st:强制等待占用cpu率
-
KiB Mem:物理内存,total:总量,free:空闲,used:使用,buff/cache:buff和cache占用
-
KiB Swap:虚拟内存(交换空间),total:总量,free:空闲,used:使用,avail Mem:可用空间
PID - - - > 进程ID
USER - - - > 进程所属用户
PR - - - > 进程优先级,越小越高
NI - - - > 负值表示高优先级,正表示低优先级
VIRT - - - > 进程使用虚拟内存,单位KB
RES - - - > 进程使用物理内存,单位KB
SHR - - - > 进程使用共享内存,单位KBbux
S - - - > 进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
%CPU - - - > 进程占用cpu率
%MEM - - - > 进程占用内存率
TIME+ - - - > 进程使用cpu时间总计,单位10毫秒
COMMAND - - - > 进程的命令和名称或程序文件路径
15.3 top交互下快捷键
-
h - - - > 显示帮助画面 c - - - > 显示COMMAN f - - - > 选择要展示的项目 M - - - > 根据驻留内存大小排序 P - - - > 根据CPU使用百分比排序 T - - - > 根据时间排序 E - - - > 切换顶部内存单位 e - - - > 切换进程内存单位 l - - - > 切换显示平均负载和启动时间信息 i - - - > 不显示任何闲置(idle)或无用(zombie)的进程 t - - - > 切换显示CPU状态信息 m - - - > 切换显示内存信息
15.4 磁盘信息监控
-
作用:查看硬盘使用情况
-
语法
df [-h]
-
-h 表示更人性化的单位显示
-
还可以使用iostat查看cpu、磁盘的信息
-
语法
iostat [-x][num1][num2]
-
-x表示显示更多信息
-
num1表示刷新间隔,num2表示刷新次数
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取的数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求,读取的是相同Block的数据,FS会将这个请求合并Merge,提供IO利用率,避免重复调用)
wrqm/s:每秒这个设备相关的写入请求有多少没Merge了
rsec/s:每秒读取的扇区数
wsec/:每秒写入的扇区数
rKB/s:每秒发送到设备的读取请求数
wKB/s:每秒发送到设备的写入请求数
avgrq-sz:平均请求扇区大小
avgqu-sz:平均请求队列长度(毫无疑问,队列越短越好)
await:每一个IO请求的处理平均时间(单位是微秒毫秒)
svctm:表示平均每次设备I/O操作的服务时间(以毫秒为单位)
%util:磁盘利用率
15.5 网络监控
-
作用:查看网络相关统计(sar命令非常复杂,这里仅用于简单统计网络)
-
语法
sar -n DEV num1 num2
-
-n 表示查看网络
-
DEV表示查看网络接口
-
num1表示刷新间隔,num2表示刷新次数
IFACE:本地网卡接口名称
rxpck/s:每秒钟接收的数据包
txpck/s:每秒钟发送的数据包
rxKB/s:每秒钟接收数据包的大小,单位KB
txKB/s:每秒钟发送数据包的大小,单位KB
rxcmp/s:每秒钟接收的压缩数据包
txcmp/s:每秒钟发送的压缩数据包
rxmcst/s:每秒种接收的多播数据包
16 环境变量
16.1 理解环境变量的作用
- 在说明which的时候,知道了一系列命令其本质上是一个个可执行的程序。比如,cd命令的本体是:/usr/bin/cd这个程序文件
因此有个疑问,为什么我们不论在那个位置都能执行cd命令呢? - 环境变量是操作系统在运行的时候,记录一下关键性的信息,以辅助系统运行
- 在Linux中执行 env 命令可以查看当前系统中记录的环境变量
- 环境变量是一直key value型结构,即名称和值
- 无论当前目录做什么,都能执行/usr/bin/cd这个程序,就是借助环境变量中的PATH这个项目:
16.2 掌握符号$ 的作用
-
Linux中,符号$用于取“变量的值”
-
语法
$环境变量名
-
示例
取的PATH的值,并通过echo输出出来:echo $PATH 当与其它内容混在一起时,可以通过{}标注变量:echo ${PATH}ABC
16.3 掌握Linux中的环境变量
-
作用:自己设置环境变量
-
语法
export 变量名=变量值
-
永久生效
针对当前用户生效,配置在当前用户: ~/.bashrc文件中 针对所有用户生效,配置在系统: /etc/profile文件中 并通过语法:source配置文件,进行立刻生效,或重新登录FinalShell生效
-
示例1
针对当前用户 进入文件:vi ~/.bashrc 添加:export name=linuxym001 执行: source ~/.bashrc
-
示例2
针对所有用户 进入文件:vim /etc/profile 添加:export name=linuxum001 执行:soure /etc/profile
自定义PATH环境变量:
-
创建一个文件夹test在文件中创建文件1.txt:mkdir test - - - > cd test - - - > touch 1.txt - - - > 随意输入字符串
-
在root权限下配置系统环境变量:vim /etc/profile - - - > 最下面输入 export PATH=$PATH:test文件地址 - - - > 保存退出
-
配置成功后在任意用户下执行:1.txt都会出入里面的字符串
17 上传、下载
17.1 rz命令
-
使用前需要安装 yum -y install lrzsz
-
作用:上传
直接输入rz使用
17.2 sz命令
-
使用前需要安装 yum -y install lrzsz
-
作用:下载
sz 下载文件名
18 压缩和解压
Linux和Mac常用的2种压缩格式:
-
tar,称之为tarball,简单的将文件封装到tar文件内,体积减少不多,仅仅只是简单封装
-
gz,常见为.tar.gz,.gzip格式压缩文件,使用gzip压缩算法压缩到一个文件内,可以极大减少体积
-
针对两种格式,使用 tar 命令进行压缩和解压
tar [-c -v -x -f -z -C] 参数1,参数2...参数N
-
-c 创建压缩文件,用于压缩模式 -v 显示压缩,查看压缩进度 -x 解压模式 -f 要创建/解压的文件,-f选项必须在所有选项最后 -z gzip模式,不适应就是普通的tarball格式 -C 解压目的地,用于解压模式
-
tar 命令压缩:常用组合
将1.txt,2.txt,3.txt压缩到test.tar文件内:tar -cvf test.tar 1.txt 2.txt 3.txt 将1.txt,2.txt,3.txt压缩到test.tar.gz文件内:tar -zcvf test.tar.gz 1.txt 2.txt 3.txt z一般在最前面,f必须在最后面
-
tar 命令解压:常用组合
将test文件解压到test2:tar -xvf test -C /home/linuxym001/test2 将test文件以Gzip格式解压到test2:tar -zxvf test -C /home/linuxym001/test2 z一般在最前面,f必须在最后面
-
zip命令压缩文件
-
语法
zip [-r] 参数1,参数...参数N
-
-r 被压缩的内容包含文件夹时使用
-
示例
将1.txt,2.txt,3.txt压缩到test.zip文件内:zip test.zip 1.txt 2.txt 3.txt 将test1,test2两个文件夹和1.txt,2.txt,3.txt三个文件压缩到test2.zip文件内:zip -r test2.zip test1 test2 1.txt 2.txt 3.txt
-
解压zip文件
-
语法
unzip [-d] 参数
-
-d表示指定解压位置
-
示例
将test1.zip解压:unzip test1.zip 将test1.zip解压到t1:unzip test.zip -d t1