文章目录
- Linux基础知识
- 操作系统基础知识
- Linux基础知识
- Linux系统的组成
- Linux系统图示
- Linux发行版
- Linux基础命令
- Linux系统的目录结构
- 目录结构对比:windows
- 路径描述方式
- Linux命令入门
- Linux命令通用格式
- 入门命令示例:ls
- 目录切换【命令】
- 路径:相对路径、绝对路径、特殊路径符
- 相对路径和绝对路径
- 特殊路径符
- 创建目录【命令】
- 文件操作【命令】
- 文件创建:touch
- 文件内容查看:cat
- 文件内容查看:more
- 文件文件夹复制:cp
- 文件文件夹移动:mv
- 文件文件夹删除:rm
- 查找命令【命令】
- which:查找命令程序所在的文件地址
- find:按文件名查找文件
- grep、wc和管道符
- grep:过滤
- wc:统计
- 管道符:|
- echo、tail和重定向符
- echo:终端输出,类似python的print
- `:将特定字符作为命令,而不仅仅是字符
- >、>>:重定向符
- tail:查看文件尾部内容
- vi/vim编辑器
- 介绍
- 命令模式
- 底线命令模式
- Linux用户和权限
- root用户
- **什么是root用户?**
- su和exit命令
- sudo命令
- 普通用户添加sudo认证
- 用户、用户组管理
- 概念
- 用户组的创建、删除
- 用户的创建、删除
- getent命令
- 查看权限控制信息
- 修改权限控制
- chmod命令:修改文件、文件夹的权限信息
- ch命令:修改文件、文件夹的所属用户和用户组
- Linux实用操作
- 快捷键
- 软件安装
- CentOs系统:yum
- Ubuntu系统:apt
- systemctl命令
- 软连接
- 日期、时区
- 查看时间:date命令
- 修改时区
- 时间同步:ntp
- IP地址、主机名
- IP地址
- 主机名
- 域名解析
- 虚拟机固定IP地址
- 网络传输
- ping命令:检查网络是否通畅
- wget命令:文件下载器
- curl命令:发起网络请求
- 端口
- 进程管理
- 什么是进程?
- 进程操作
- 主机状态
- top命令:查看系统资源占用
- df命令:硬盘信息监控
- iostat命令:查看CPU、磁盘的相关信息
- sar命令:网络状态监控
- 环境变量
- 什么是环境变量?
- $、{}:变量取值
- 自行设置环境变量
- 上传、下载
- 远程连接软件的操作交互
- Linux命令操作交互
- 压缩、解压
- 常见压缩格式
- tar命令
- zip命令:压缩文件
- unzip命令:解压缩文件
Linux基础知识
操作系统基础知识
计算机的组成:
-
硬件+软件:
-
硬件:计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称
-
软件:用户和计算机硬件之间的接口和桥梁,用户通过软件与计算机进行交流。操作系统是软件的一类
-
-
**操作系统:**作为用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作
Linux基础知识
Linux系统的组成
Linux系统内核+系统级应用程序:
- Linux系统内核:提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等
- 系统级应用程序:可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器、任务管理器、图片查看、音乐播放等
Linux系统图示
以音乐播放举例,不管是自带的系统程序,亦或者是第三方程序,均是通过调用内核提供的相关功能,由内核调度CPU解码、音响发声等
Linux发行版
-
提供了内核+系统级程序的完整封装,称之为Linux发行版
-
市面上常见的Linux发行版:
- 不同发行版之间的区别:
- 基础命令100%相同
- 部分操作有所差异,如:软件安装
Linux基础命令
Linux系统的目录结构
目录结构对比:windows
Windows | Linux |
---|---|
多个盘符 | 没有盘符概念,只有一个根目录/,存储了所有文件 |
针对某一特定盘符,目录 结构为数形 | 目录结构为树形 |
路径描述方式
Windows | Linux |
---|---|
D:\data\work\hello.txt | /usr/local/hello.txt(开头的斜杠表示根目录,后续的斜杠表示层次关系) |
Linux命令入门
Linux命令通用格式
command [- options] [parameter]
- command:命令本身
- -options:命令可选项,可不写
- parameter:命令参数,命令的作用目标
入门命令示例:ls
ls [-a -l -h] [Linux路径] | 获取Linux路径下的文件及文件夹信息(ls: list directory contents) |
---|---|
无参数 | 以平铺的形式,列出当前工作目录下的内容(默认目录是Home目录:/home/用户名) |
-l | -list,以列表(竖向排列)的形式展示当前工作目录下的内容,并给出更多信息 |
-a | -all,展示当前工作目录下的所有文件及文件夹(包括隐藏的文件及文件夹) |
-h | 以人类易于阅读的形式,列出文件的大小,如K、M、G(必须搭配-l一起使用,不然没有效果) |
-lah | 命令选项可以直接字符组合,无关顺序 |
-l -a -h | 命令选项可以依次调用 |
隐藏文件及文件夹
- Linux中默认以“.”开头的文件或文件夹,会自动隐藏
- 用-a命令选项,可以展示出来
目录切换【命令】
cd [Linux路径] | 更改当前的工作目录为Linux路径(cd:change directory) |
---|---|
无参数 | 默认回到Home目录作为当前的工作目录 |
展示当前工作目录的命令:pwd
- 全称:Print Work Directory
- 无可选项,无参数
路径:相对路径、绝对路径、特殊路径符
相对路径和绝对路径
示例:当前工作目录为:/home/hmteen,请通过cd命令,切换工作目录到:/home/hmteen/python
解决方案:
命令实现 | 解释 |
---|---|
cd /home/itheima/Desktop | 绝对路径写法,以根目录为起点,路径描述以“/”开头 |
cd Desktop | 相对路径写法,以当前目录为起点,路径描述不以“/”开头 |
特殊路径符
符 | 作用 | 示例 |
---|---|---|
. | 表示当前目录 | cd ./Desktop 命令效果同于cd Desktop |
… | 表示上一级目录 | cd .. 回到上一级目录;cd ../.. 回到上两级目录 |
~ | 表示HOME目录 | cd ~ 切换到HOME目录 |
创建目录【命令】
mkdir [-p] Linux路径 | 创建目录 |
---|---|
Linux路径 | 可以用相对路径写法,也可以用绝对路径写法 |
-p | 表示自动创建不存在的父目录,适用于创建连续多层级的目录 |
文件操作【命令】
文件创建:touch
touch Linux路径 | 创建文件 |
---|---|
Linux路径 | 表示要创建的文件路径。可以用相对路径写法,也可以用绝对路径写法,也可以用特殊路径符 |
文件内容查看:cat
cat Linux路径 | 查看文件内容 |
---|---|
Linux路径 | 表示被查看文件的路径。可以用相对路径写法,也可以用绝对路径写法,也可以用特殊路径符 |
文件内容查看:more
cat Linux路径 | 查看文件内容 |
---|---|
Linux路径 | 表示被查看文件的路径。可以用相对路径写法,也可以用绝对路径写法,也可以用特殊路径符 |
与cat命令的区别:
- cat命令将内容全部显示出来
- more支持翻页。文件内容过多,可以一页一页展示
- 空格翻页
- 键盘输入
q
退出查看
文件文件夹复制:cp
cp [-r] 参数1 参数2 | 复制文件文件夹 |
---|---|
参数1 | 一个Linux路径,表示被复制的文件或文件夹 |
参数2 | 一个Linux路径,表示要复制去的地方 |
文件文件夹移动:mv
mv 参数1 参数2 | 移动文件文件夹 |
---|---|
参数1 | 一个Linux路径,表示被移动的文件或文件夹 |
参数2 | 一个Linux路径,表示要移动去的地方。如果目标不存在,则进行改名,确保目标存在 |
文件文件夹删除:rm
rm [-r -f ] 参数1 参数2 … 参数N | 删除文件文件夹 |
---|---|
-f | force,强制删除(不会弹出提示确认信息) |
-r | 用于删除文件夹 |
参数1 参数2 参数N | 一个Linux路径,表示要删除的文件或文件夹,按照空格隔开 |
参数通配符:*
test*
:表示匹配任何以test开头的内容*test
:表示匹配任何以test结尾的内容*test*
:表示匹配任何包含test的内容
查找命令【命令】
which:查找命令程序所在的文件地址
Linux命令,本体就是一个个的二进制可执行程序,即.exe可执行文件,有存放地址
which 参数 | 查找命令程序所在的文件地址 |
---|---|
参数 | 带查找的命令,如:cd、pwd、touch、cp、mv等 |
find:按文件名查找文件
find 参数1 [] | 查找文件 |
---|---|
参数1 | 起始路径,表示查找该路径及其子路径下的特定文件。支持绝对路径、 |
-name “参数2” | 以文件名字形式查找文件。参数2:待查找的文件名,支持通配符* |
-size +|-n[KMG] | 以文件大小形式查找文件。+、-:表示文件大于或小于某个值;k-kb、M-MB、G-GB |
grep、wc和管道符
grep:过滤
grep [-n] 关键字 文件路径 | 过滤文件行 |
---|---|
-n | 显示匹配的行的行号 |
关键字 | 要过滤的内容,带有空格或其他特殊字符,建议用""包裹起来 |
文件路径 | 要过滤内容的文件路径,支持绝对路径、相对路径 |
wc:统计
wc [-c -m -l -w] 文件路径 | 过滤文件行 |
---|---|
-c | 统计bytes数量 |
-m | 统计字符数量 |
-l | 统计行数 |
-w | 统计单词数量 |
无可选项 | 默认统计:行数、单词数、字节数 |
文件路径 | 被统计的文件的路径,支持绝对路径、相对路径 |
管道符:|
**作用:**将管道符左边命令的结果,作为右边命令的输入
示例:
// 将itheima.txt的文件内容,进行gerp命令的过滤,过滤关键字“itheima”
cat itheima.txt | grep "itheima"
// 过滤ls的结果
ls | grep "Desktop"
// 过滤结果,只找路径带有/usr/lib64的结果
find / -name "test" | grep "/usr/lib64"
// 管道符的嵌套使用
// - cat itheima.txt的结果给 grep itcast 使用
// - cat itheima.txt | grep itcast 的结果给 grep itheima使用
cat itheima.txt | grep itcast | grep itheima
echo、tail和重定向符
echo:终端输出,类似python的print
echo 输出的内容 | 输出内容到终端 |
---|---|
输出的内容 | 用”“包围 |
`:将特定字符作为命令,而不仅仅是字符
// 打印结果就是pwd
echo pwd
// 打印结果是pwd命令执行的结果,即当前的工作路径
echo `pwd`
>、>>:重定向符
>
将左侧命令的结果,覆盖写入到符号右侧指定的文件中>>
将左侧命令的记过,追加写入到符号右侧指定的文件中
echo “Hello Linux” > itheima.txt
// txt文件中只剩一行内容:Hello Linux
echo “Hello itheima” > itheima.txt
// 再次执行,覆盖新内容,txt文件中现在的内容:Hello itheima
echo “Hello itcast” >> itheima.txt
// 再次执行,追加新内容(自动换行),txt文件中现在的内容:
Hello itheima
Hello itcast
tail:查看文件尾部内容
tail [-f -num] Linux路径 | 查看文件尾部内容 |
---|---|
-f | 表示持续跟踪 |
-num | 表示看尾部多少行,默认10行 |
Linux路径 | 待查看文件的路径 |
vi/vim编辑器
介绍
vi\vim是visual interface的简称,是Linux中最经典的文本编辑器同图形化界面中的 文本编辑器一样
-
vi是命令行下对文本文件进行编辑的绝佳选择
-
vim 是 vi 的加强版本,兼容 vi 的所有指令,不仅能编辑文本,而且还具有 shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性
三种工作模式
工作模式 | 特点 |
---|---|
命令模式 | 敲的任何按键编辑器都理解为命令,以命令驱动执行不同的功能。 此模型下,不能自由进行文本编辑 |
输入模式 | 即编辑模式、插入模式。 此模式下,可以对文件内容进行自由编辑 |
底线命令模式 | 以:开始,通常用于文件的保存、退出 |
命令模式
vim 文件路径 | 编辑文件 |
---|
- 如果文件路径下的文件不存在,此命令用于编辑新文件
- 如果文件路径下的文件存在,此命令用于编辑已有文件
常用命令快捷键
底线命令模式
Linux用户和权限
root用户
什么是root用户?
超级管理员,root用户拥有最大的系统操作权限。
普通用户在根目录下创建文件夹会失败,切换到root用户,就可以了
su和exit命令
su命令可以切换当前用户到root用户;exit命令可以退出root用户
su [-] [用户名] | 切换用户 |
---|---|
- | 表示切换之后加载环境变量 |
用户名 | 用户名字,不需要加引号 |
exit | 退出当前用户 |
---|---|
当前是root用户 | 退出到普通用户 |
当前是普通用户 | 断开连接 |
sudo命令
不建议长期切换到root用户进行操作,避免对系统造成损坏
通过sudo命令,可以临时给普通用户,授予root权限
sudo 命令 | 给予root权限,执行当前命令 |
---|
普通用户添加sudo认证
并非所有用户,都有权力使用sudo命令,没有权限的普通用户,需要添加认证,使其具备使用资格
- 切换到root用户,执行
visudo
命令(该命令会自动通过vi编辑器打开:/etc/sudoers) - 在文件最后一行添加如下内容:
自己的用户名 ALL=(ALL) NOPASSWD: ALL
// xx空格xx制表符Tabxx:空格xx
- 通过wq命令保存
- 切换到普通用户,执行sudo命令
用户、用户组管理
概念
Linux系统中,可以:
- 配置多个用户
- 配置多个用户组
- 用户可以加入多个用户组里面
Linux中关于权限的管控级别有2个级别,分别是:
- 针对用户的权限控制
- 针对用户组的权限控制
用户组的创建、删除
以下命令需要root用户执行
命令 | 作用 |
---|---|
groupadd 用户组名 | 创建用户组 |
groupdel 用户组名 | 删除用户组 |
用户的创建、删除
以下命令需要root用户执行
创建用户
useradd [-g -d] 用户名 | 创建用户 |
---|---|
-g | 指定该用户的分组。不指定,默认会创建一个跟用户名一样的组;若同名的组已存在,则必须使用-g指定特定的用户组 |
-d | 指定用户的HOME路径。不指定默认为:/home/用户名 |
useradd test <==> useradd -g test -d /home/test
删除用户
userdel [-r] 用户名 | 删除用户 |
---|---|
-r | 删除用户的HOME目录。不使用该选项,删除用户的时候,HOME目录会保留 |
查看用户
id [用户名] | 查看用户 |
---|---|
用户名 | 被查看的用户,不提供就查看自身 |
修改用户所属组
usermod -aG 用户组 用户名 | 将指定用户加入指定用户组 |
---|
getent命令
getent passwd | 查看当前系统中有哪些用户 |
---|
// 所列每个用户的信息组成:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
getent group | 查看当前系统中有哪些用户组 |
---|
// 所列每个用户组的信息组成:
组名称:组认证(显示为x):组ID
查看权限控制信息
[hmteen@localhost ~]$ ls -l
total 4
drwxr-xr-x. 2 hmteen hmteen 6 Jun 29 00:20 Desktop
-rw-rw-r--. 1 hmteen hmteen 133 Dec 25 23:40 hello.txt
drwxr-xr-x. 2 hmteen hmteen 6 Jun 29 00:20 下载
drwxr-xr-x. 2 hmteen hmteen 6 Jun 29 00:20 公共
drwxr-xr-x. 2 hmteen hmteen 6 Jun 29 00:20 图片
drwxr-xr-x. 2 hmteen hmteen 6 Jun 29 00:20 文档
drwxr-xr-x. 2 hmteen hmteen 6 Jun 29 00:20 桌面
drwxr-xr-x. 2 hmteen hmteen 6 Jun 29 00:20 模板
drwxr-xr-x. 2 hmteen hmteen 6 Jun 29 00:20 视频
drwxr-xr-x. 2 hmteen hmteen 6 Jun 29 00:20 音乐
< 1 > < 2 > < 3 >
分组1:drwxr-xr-x
:表示文件、文件夹的权限控制信息分组2:hmteen
:表示文件、文件夹所属的用户分组3:hmteen
:表示文件、文件夹所属的用户组
权限 | 含义 | 解释 |
---|---|---|
r | 读权限 | 针对文件:表示可以查看文件内容 |
针对文件夹:表示可以通过ls命令查看文件夹内容 | ||
w | 写权限 | 针对文件:表示可以修改此文件 |
针对文件夹:表示可以在文件夹内进行:创建、删除、改名等操作 | ||
x | 执行权限 | 针对文件:表示可以将文件作为执行程序 |
针对文件夹:表示可以更改工作目录到此文件夹,即cd命令 |
修改权限控制
chmod命令:修改文件、文件夹的权限信息
只有该文件、文件夹的所属用户或者root用户,具备修改权限
chmod [-R] 权限 文件或文件夹路径 | 修改文件、文件夹的权限信息 |
---|---|
-R | 对文件夹内的全部内容应用同样的操作 |
示例
chmod u=rwx,g=rx,o=x hello.txt
chmod -R u=rwx,g=rx,o=x test
chmod 751 hello.txt (!!!)
权限的数字符号
编号 | 权限 | 指代 |
---|---|---|
0 | 无任何权限 | — |
1 | 仅有x权限 | –x |
2 | 仅有w权限 | -w- |
3 | 有w和x权限 | -wx |
4 | 仅有r权限 | r– |
5 | 有r和x权限 | r-x |
6 | 有r和w权限 | rw- |
7 | 有全部权限 | rwx |
ch命令:修改文件、文件夹的所属用户和用户组
只有该文件、文件夹的所属用户或者root用户,具备修改权限
chown [-R] [用户] [:] [用户组] 文件或文件夹路径 | 修改文件、文件夹的所属用户和用户组 |
---|---|
-R | 对文件夹内的全部内容应用同样的操作 |
用户 | 修改所属用户 |
用户组 | 修改所属用户组别 |
: | 分割作用 |
示例
chown root hello.txt
将hello.txt所属用户修改为root
chown :root hello.txt
将hello.txt所属用户组修改为root
chown root:itheima hello.txt
将hello.txt所属用户修改为root,用户组修改为itheima
chown -R root test
将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
- 对所属用户组有操作,需要用到冒号
- 仅对所属用户有操作,不需要写冒号
Linux实用操作
快捷键
快捷键 | 功能 |
---|---|
ctrl+c | 程序强制终止;命令输入强制清空 |
ctrl+d | 退出账户的登录;退出某些程序的专属页面,如:Python |
history命令 | 查看历史输入过的命令 |
ctrl + a | 跳到命令开头 |
ctrl + e | 跳到命令结尾 |
ctrl + 键盘左键 | 向左跳一个单词 |
ctrl + 键盘右键 | 向右跳一个单词 |
ctrl + l 或者 clear命令 | 清屏 |
软件安装
CentOs系统:yum
yum命令需要root权限
yum [-y] [install | remove | search] 软件名称 | 软件安装、卸载、搜索 |
---|---|
-y | 自动确认,无需手动确认安装或卸载 |
install | 安装软件 |
remove | 卸载软件 |
search | 搜索软件 |
Ubuntu系统:apt
apt命令同样需要root权限
apt [-y] [install | remove | search] 软件名称 | 软件安装、卸载、搜索 |
---|---|
-y | 自动确认,无需手动确认安装或卸载 |
install | 安装软件 |
remove | 卸载软件 |
search | 搜索软件 |
systemctl命令
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
能够被systemctl管理的软件,一般也称之为:服务
systemctl start | stop | status | enable | disable 服务名 | 控制服务行为 |
---|---|
start | 启动服务 |
stop | 关闭服务 |
status | 查看状态 |
enable | 开启开机自启 |
disable | 关闭开机自启 |
软连接
类似Windows系统的《快捷方式》:只是一个指向,并不是物理移动
ln -s 参数1 参数2 | 给文件、文件夹创建软连接 |
---|---|
-s | 创建软连接 |
参数1 | 被链接的文件或文件夹 |
参数2 | 要链接去的目的地 |
日期、时区
查看时间:date命令
date [-d] [+格式化字符串] | 查看时间 |
---|---|
-d | 用于日期计算 |
+格式化字符串 | 自定义日期显示方式 |
-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” | 显示上一年的日期 |
格式化字符串
符号 | 含义 |
---|---|
%Y | 年 |
%y | 年份后两位数字 |
%m | 月份 |
%d | 日 |
%H | 小时 |
%M | 分钟 |
%S | 秒 |
%s | 自 1970-01-01 00:00:00 UTC 到现在的秒数 |
修改时区
- 将系统自带的localtime文件删除:
sudo rm -f /etc/localtime
- 修改时间:
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
时间同步:ntp
安装程序,系统自启动服务校准
yum -y install ntp
systemctl start ntpd
systemctl enable ntpd
手动校准
ntpdate -u ntp.aliyun.com
// 需要root权限
IP地址、主机名
IP地址
每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯
- IP地址主要有2个版本:V4版本和V6版本
- IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字
Linux查看本机ip地址
ifconfig
若无法执行该命令,可安装:yum -y install net-tools
一些特殊的ip地址
127.0.0.1:这个IP地址用于指代本机
0.0.0.0:
- 可以指代本机
- 可以在端口绑定中确定绑定关系
- 在IP限制规则里面,表示放行所有IP
主机名
每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名
Linux中关于主机名的操作
hostname
// 查看主机名
hostnamectl set-hostname 主机名
// 修改主机名(需要root权限)
域名解析
IP地址难以记忆,可以通过字符化的地址去访问服务器(域名)
域名和IP地址之间的对应关系,需要进行域名解析
虚拟机固定IP地址
为什么要固定IP?
当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的
- DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更
远程连接到Linux系统,若不固定IP,需要频繁变更配置文件来适配
固定IP的步骤
- 若Linux系统安装在虚拟机上,先配置IP地址网关和网段(IP地址的范围)
- 在Linux系统中手动修改配置文件,固定IP(固定具体的IP地址)
网络传输
ping命令:检查网络是否通畅
ping [-c num] ip或主机名 | |
---|---|
-c num | 设置检查次数,不设置将一直检查 |
ip或主机名 | 被检查的服务器的ip地址或主机名地址 |
wget命令:文件下载器
wget是非交互式的文件下载器,可以在命令行内下载网络文件
wget [-b] url | |
---|---|
-b | 后台下载,将日志写入当前工作目录的wget-log文件中 |
url | 下载链接 |
curl命令:发起网络请求
curl可以发送http网络请求,可用于:下载文件、获取信息等
curl [-0] url | |
---|---|
-0 | 用于下载文件,当url是下载链接时,可以通过此选项保存文件 |
url | 要发起请求的网络地址 |
端口
什么是端口?
端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类
- 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等
- 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
Linux中的端口
Linux系统是一个超大号小区,可以支持65535个端口,这6万多个端口分为3类进行使用:
- 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口非特殊需要,不要占用这个范围的端口
- 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
- 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用
查看端口占用情况
// 安装nmap
yum -y install nmap
// 查看指定IP地址的对外暴露端口
nmap 被查看的ip地址
// 查看具体端口的被占用情况,若无法用该命令:yum -y install net-tools
netstat -anp | grep 端口号
// 结果分析:
// 22端口被绑定到0.0.0.0这个IP地址上,表示允许所有ip访问(外部ip)
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
进程管理
什么是进程?
程序运行在操作系统中,是被操作系统所管理的
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程。并会为每一个进程都分配一个独有的:进程ID(进程号)
进程操作
查看进程
ps [-e -f] | 查看Linux中的进程信息(一般两个选项,都带上) |
---|---|
-e | 显示全部进程 |
-f | 展示进程的全部信息 |
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:37 ? 00:00:02 /usr/lib/systemd/systemd --switched-root --sy
root 2 0 0 09:37 ? 00:00:00 [kthreadd]
名词 | 解释 |
---|---|
UID | 进程所属的用户ID |
PID | 进程的进程号ID |
PPID | 进程的父ID(启动此进程的其它进程) |
C | 此进程的CPU占用率(百分比) |
STIME | 进程的启动时间 |
TTY | 启动此进程的终端序号,如显示?,表示非终端启动 |
TIME | 进程占用CPU的时间 |
CMD | 进程对应的名称或启动路径或启动命令 |
查看指定进程
ps -ef | grep tail
// 精确找到tail命令的信息
关闭进程
kill [-9] 进程ID | 关闭进程 |
---|---|
-9 | 强制关闭进程 |
进程ID | 进程的ID |
主机状态
top命令:查看系统资源占用
top [-p -d -c -n -b -i -u] | 查看系统资源占用 |
---|---|
选项以后再了解 |
命令执行结果解析
// 第一行结果
top:命令名称,14:36:57:当前系统时间,up 3 min:启动了3分钟,2 users:2个用户登录,load:1、5、15分钟负载
// 第二行结果
Tasks:179个进程,2 running:2个进程子在运行,177 sleeping:174个进程睡眠,0个停止进程,0个僵尸进程
// 第三行结果
%Cpu(s):CPU使用率,us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id:空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,si:CPU软件中断率,st:强制等待占用CPU率
// 第四行结果
Kib Mem:物理内存,total:总量,free:空闲,used:使用,buff/cache:buff和cache占用
// 第五行结果
KibSwap:虚拟内存(交换空间),total:总量,free:空闲,used:使用,buff/cache:buff和cache占用
名词 | 解释 |
---|---|
PID | 进程id |
USER | 进程所属用户 |
PR | 进程优先级,越小越高 |
NI | 负值表示高优先级,正表示低优先级 |
VIRT | 进程使用虚拟内存,单位KB |
RES | 进程使用物理内存,单位KB |
SHR | 进程使用共享内存,单位KB |
S | 进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态) |
%CPU | 进程占用CPU率 |
%MEM | 进程占用内存率 |
TIME+ | 进程使用CPU时间总计,单位10毫秒 |
COMMAND | 进程的命令或名称或程序文件路径 |
df命令:硬盘信息监控
df [-h] | 磁盘信息监控 |
---|---|
-h | 以更加人性化的单位显示 |
iostat命令:查看CPU、磁盘的相关信息
iostat [-x] [num1] [num2] | 查看CPU、磁盘的相关信息 |
---|---|
-x | 显示更多信息 |
num1 | 数字,刷新间隔 |
num2 | 数字,刷新次数 |
sar命令:网络状态监控
sar -n DEV num1 num2 | 网络状态监控 |
---|---|
-n DEV | 查看网络接口 |
num1 | 刷新间隔(不填就查看一次结束) |
num2 | 查看次数(不填就无限次数) |
环境变量
什么是环境变量?
环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行
可以用env命令查看当前系统中记录的环境变量
env
// 查询很多信息
env | grep PATH
// 将环境变量筛选出来:PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/hmteen/.local/bin:/home/hmteen/bin
// : 分割每一个环境变量
$、{}:变量取值
echo $PATH
// 获取PATH变量里面的值:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/hmteen/.local/bin:/home/hmteen/bin
echo ${PATH}ABC
// 取PATH变量的值,并在后边缀上ABC
自行设置环境变量
临时设置
永久设置
上传、下载
远程连接软件的操作交互
直接通过远程连接软件提供的界面,进行操作交互
Linux命令操作交互
以下命令要实现,需要终端软件支持才可以。FinalShell、SecureCRT、XShell等均支持
// 安装相关软件
yum -y install lrzsz
// 文件上传,输入以下命令
rz
// 文件下载,默认下载到:桌面/fsdownload/
sz 要下载的文件
压缩、解压
常见压缩格式
压缩格式 | 适配系统 |
---|---|
zip | Linux、Windows、MacOS(常用) |
7zip | Windows系统常用 |
rar | Windows系统常用 |
tar | Linux、MacOS常用 |
gzip | Linux、MacOS常用 |
tar命令
tar [-c -v -x -f -z -C] 参数1 参数2 … 参数N | |
---|---|
-c | 创建压缩文件,用于压缩模式 |
-v | 显示压缩、解压过程,用于查看进度 |
-x | 解压模式 |
-f | 要压缩(或解压)的文件,该选项必须在所有选项的最后边 |
-z | gzip模式,不使用该选项就是普通的tarball格式 |
-C | 选择要解压的目的地,用于解压模式 |
参数1…N | 待处理的文件 |
tar -cvf test.tar 1.txt 2.txt 3.txt
// 将1.txt、2.txt、3.txt 压缩到test.tar文件内
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
// 将1.txt、2.txt、3.txt 压缩到test.tar.gz文件内,使用gzip模式
zip命令:压缩文件
zip [-r] 参数1 参数2 … 参数N | |
---|---|
-r | 被压缩的包含文件夹的时候,需要用该选项。和rm、cp命令中的一样 |
zip test.zip a.txt b.txt c.txt
// 将a.txt b.txt c.txt 压缩到test.zip文件内
zip -r test.zip test itheima a.txt
// 将test、itheima两个文件夹和a.txt文件,压缩到test.zip文件内
unzip命令:解压缩文件
unzip [-d] 参数 | |
---|---|
-d | 指定要解压到的位置 |
参数 | 被解压的zip压缩包文件 |
unzip test.zip
// 将test.zip解压到当前目录
unzip test.zip -d /home/itheima
// 将test.zip解压到指定文件夹内(/home/itheima)