Linux前步骤
远程链接linux系统
因为图形化界面并不是很好用,所以我们通常使用的就是命令行,
我们通过finalShell进行链接 到linux操作系统
进行链接虚拟机
-
打开虚拟机,并登录->桌面位置鼠标右键->选择最后一个进行打开终端->输入ifconfig
-
ens33->inet有个地址就会是我们虚拟机的ip地址了
-
-
回到finashell软件->左上角文件夹->白色小+号->ssh链接->主机就是ip地址->其余填完就可,端口先不管
-
链接处进行双击
-
输入ls验证vm跟finalshell结果是否一致
-
然后vm使他最小化,不要进行关闭
有时候虚拟机经过重启或者关机之后,ip地址会改变,当我们发现链接不上的时候,->重述上述步骤之后,获得相关的ip地址,然后再店家白色文件夹,右边小齿轮,然后进行ip地址的更改,让ip地址进行一致
拓展:安装ubuntu
传统方式
通过VMware进行安装完整的虚拟机
通过使用WSL
优点:方便,轻量化
可以在win系统中直接获得linux系统,并且直连计算机硬件,不需要通过虚拟机虚拟硬件
-
进行开启 win图标->点开右键->应用和功能->右上角程序和功能->启用或关闭Windows功能->适用于linux的windows子系统打开->重启
-
进行安装->微软商店->搜索ubuntu
-
安装之后->里面提示我们创建用户名和密码
安装windows terminal软件
因为ubuntu自带的终端窗口不好用户,所以使用这个
-
下载安装好之后,选择右上角的三角-->选择ubuntu
-
再次选择三角,点击设置,把默认配置文件改成ubuntu
linux命令
ctrl+l可以进行清屏
tab键可以补完代码
ctrl+c可以中断程序的执行
有时候命令执行不了,请输入大写
linux的目录结构
只有一个根目录/,所有的文件都在这个下面
-
在win中D:\data这样子进行表示
-
在linux系统中我们使用/进行表示 /user/local 第一个斜杠表示的是根目录
-
根目录包含home文件夹
命令基础
命令行:即linux终端,是一种命令提示符 页面
命令:linux程序,一个命令就是一个linux程序
格式
command [-options] [parameter]
命令本身 [里面,可选非必填],进行书写的时候,括号不用写出来
ls -l /home/text
ls是命令本身,-l是选项,最后是路径.以列表的方式显示该路径下的内容(参数)
cp -r test1 test2
复制文件夹test1成为test2 (test1,tset2就是参数)
ls命令:列出目录下的内容
作用: 列出目录下的内容
ls [-a -l -h] [路径]
不适用选项时,命令本体:以平铺形式,列出当前工作目录下的内容
-
当前工作目录就是home文件夹路径下(实际路径是/home/用户名)
ls命令的参数
当参数不写出的时候,默认就是home目录
使用参数就可以指定一个linux路径,列出指定路径内容
选项
-
-a :表示 all 的意思,列出全部文件()包含隐藏文件
-
目录前面带一个.就代表是隐藏文件(只有-a的时候才显示)
-
-
-l : 以列表(竖向排列)的形式展示内容,并展示更多信息
-
展示的内容为 权限 用户和用户组 大小 创建时间 文件名称
-
-
-h 表示以易于阅读的形式,列出文件大小,如K,M,G(单位)
组合使用命令
语法中的选项是可以进行组合使用的
-
ls -l -a
-
ls -la
-
ls -al
三种写法的作用是一样的,都是同时应用-l和-
a的功能
目录切换-cd -pwd 指令
cd命令 change directory
cd [路径] 更改当前所在的工作目录
-
没有选项,接上参数,就直接切换到该目录下面
-
cd不写参数时,回到home目录下
pwd 查看当前工作目录
用来验证当前的工作目录
-
直接输入psd命令 无选项 无参数,直接输入pwd即可
相对路径和绝对路径
转到某一文件
-
绝对路径:可以 cd/home/用户名/文件夹 要以根目录为起点
-
相对路径:cd 文件夹
特殊路径符
-
. 表示当前目录(帮忙省略了好多东西) cd./Desktop=cd Desktop
-
.. 表示上一级目录 cd../.. 退两级
-
~ 表示home目录 cd~就可以换到home 或cd~/Desktop就可以切换到Desktop
在当前工作目录上有一个test文件夹,文件夹内有一个文件hello.txt
../test/hello.txt
创建目录命令
mkdir (make directory) 创建新的目录(文件夹)
mkdir [-p] 路径
-
参数必填,表示linux的路径,就是要进行创建文件夹的路径,相对路劲,绝对路径都可以
-
-p可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
-
就是比如说一串链接都是要进行创建的就可以使用-p
-
注意
创建文件需要修改权限,为了确保操作均要在home目录内,不要在home外进行创建
文件操作命令
touch命令创建文件(不是文件夹)
touch 路径/后面就是创建的文件名
无选项,参数必填.
-
文件夹是蓝色的,文件是白色的
-
用ls -l 表示时,第一个字母是d就是文件夹,- 就是文件
cat 命令查看文件内容
cat linux路径
无选项,必填参数,相对,绝对,特殊;路径都可以使用
-
编辑内容,需要用到编辑器
-
直接就输出创建的文件里面进行编写的拿一个内容
more 命令查看文件
more linux路径
没有选项,必填参数,相对,绝对,特殊;路径都可以使用
-
cat是直接将内容全部显示出来
-
more支持翻页,如果文件内容过多,就可以一页一页的显示
-
按空格就可以进行一个翻页操作
-
按q进行退出操作
cp 命令复制文件夹
cp [-r] 参数1,参数2
-
-r 可选,用于复制文件夹时使用,表示递归
-
不然就会提示略过了目录,
-
-
参数1.linux路径,表示被复制的文件或文件夹
-
参数2 linux路径,表示要复制去的地方
mv 移动文件或文件夹
mv 参数1,参数2
无选项
-
参数1,linux路径,表示被移动的文件或文件夹
-
参数2,linux路径,表示要移动去的地方,如果目标不存在,就会进行改名,确保目标存在
-
mv test.txt Desktop/ //最后要进行加入一个/,不用加也可以
-
当要移动过去的目标不存在的时候,自己就会变为对应的参数2(相当于改名效果)
-
rm 删除文件,文件夹
rm [-r -f] 参数1,参数2.......参数n
-
-r 表示删除文件夹,删除多个数据时
-
不选提示无法删除,他是一个目录
-
删除多个目标时 mv -r test.txt test2.txt
-
-
-f 表示force,强制删除(不会弹出提示确认信息)
-
只有root才会进行提示信息(就是寻常删文件的时候)
-
输入 y表示yes n no
-
-
一般用户用不到-f
-
-
参数1,参数2,,,,参数m 表示要删除的文件或文件夹路径,按照空格进行隔开
rm命令支持通配符,用来模糊匹配
rm指令非常危险,一定要谨慎使用,尤其是root 的时候
rm -rf/
rm -rf/* 都相当于删库跑路// /*表示把该文件下的全部内容清除
通配符
-
表示通配符,就是匹配任意内容(包含空)
-
test*, 表示匹配任何以test开头的内容
-
*test, 表示匹配任何以test结尾的内容
-
*test*, 表示匹配任何包含test的内容
-
root
通过 su - root,并输入密码进入(和默认的一样) 这个是临时用root
输入exit 返回普通用户(临时用root,一定要退出)
查找命令
which 查看所使用的一系列命令的程序文件
which 要查找的命令
which cd
find 按文件名查找文件
find 起始路径 -name "被查找的文件名"
通配符也可以进行搭配使用
find 按文件大小查找文件
find 起始路径 -size +\- n[kMG]
-
+\-表示大于和小于
-
n表示大小数字
-
kMG 表示单位大小 k(小写) 表示kb,M表示MB ,G 表示GB
列子 :find / -size -10k
grep-wc-管道符
grep 通过关键字过略文件行
grep [-n] 关键字 文件路径(过滤一个文件里面的信息)
-
-n可选,表示在结果中显示匹配的行的行号
-
关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用" " 进行一个包围
-
文件路径,必填,表示过滤内容的文件路径,可用管道符输入
grep "nihao" test.txt 就进行过滤这个文件里面的信息
结果:保留含有该信息的行
在管道里面,grep就可以将左边的结果作为文本内容做出相应的反馈
wc 数量统计
wc [-c -m -l -w] 文件路径
-
英文字符只占一个字节
什么都不加就是 行数 单词数 字节数 文件名
-
-c ,统计bytes数量
-
-m 统计字符数量
-
-l 统计行数
-
-w 统计单词数量
-
参数,文件路径,被统计的文件,可用管道符输入
管道符 | --------
将管道符左边命令的结果,作为右边的输入(相当于链式编程)
ls /user/bin | grep gtf
echo,tail和重定向符
echo命令 在命令行内输出指定内容
echo 输出的内容
-
无需选项,只有一个参数,表示要输出的内容,复杂内容可以用""包围
-
echo hello就会输出hello
echo "hello"
反引号`(重要)
echo ` pwd ` ,被包围的内容作为命令去执行,
重定向符
产生结果的指令,都可以往右边的文件中写入东西,并且前面的并不会在终端输出结果
>,将左侧命令的结果,覆盖写入放到符号右侧的指定文件中
-
将原本的内容进行一个清空,将新内容写进去
>> 将左侧命令的结果,追加写入到符号右侧指定的文件中
-
原有的内容不变,追加到后面去
列子:echo "nihao" > test.txt 原本在里面的文本内容就会被进行一个替换
tail 命令
可以查看文件尾部的内容,跟踪文件的最新更改
tail [-f -num] Linux路径
-
参数,linux路径,表示跟踪文件的路径
-
-f ,表示持续跟踪,
-
可以在创建一个页(右键标签->复制标签)
当令一个标签里面进行更改的时候,第一个标签也会实时显现更改的数据
-
停止跟踪ctrl+c
-
-
-num,表示查看尾部多少行,不填默认10行,num要写成具体的数字
vi\vim编辑器(重要)
镶嵌与linux中,vim是vi的升级版 neovim是重构版
使用vim说未知命令的用yum install vim安装vim
-
命令模式(Command mode)
敲打的内容都理解为命令,用来驱动执行不同的功能(不能自由进行文本编辑)
-
输入模式(Insert mode)
编辑模式,插入模式 ,可以对文件内容进行自由编辑
-
底线命令模式(Last line mode)
通常用于文件的保存,退出
这个:号是要我们将自己进行书写的
进入之后里面是命令模式->输入->命令->底线->命令->退出
通过vi/vim编辑器编辑文件
-
vi 文件路径
-
vim 文件路径
-
如果文件路径表示的文件不存在,那么次命令会用于编辑新的文件(进行了文件的创建)
-
存在,编辑已有的文件
-
转换
-
i \a\o进入输入模式
-
esc键退回到命令模式
-
: 底线命令模式 左下角会显示
-
退出 w(保存) q(退出) 按一下回车 退出这个编辑器
-
命令模式下的快捷键
-
i 进入输入模式,以光标的位置开始进行编辑
-
a 进入输入模式,在光标后一个位置进入
-
I 输入模式,在当前行的开头开始
-
A 行的队尾开始
-
o 开一个新行,在光标位置下一行开始
-
O 上一行
-
esc 返回命令模式
-
0 移到开头 $队尾 pageup(向上翻页) down(向下)
-
/ 进入搜索模式
-
n 向下搜索(按一下就跳转一下) N向上搜
-
dd 删除此行内容 | p 粘贴复制的内容 | G 跳转队尾 |
---|---|---|
ndd n是数字,删除光标下n行 | u 撤销 | dG 从当前行开始,向下全删 |
yy 复制当前行 | ctrl +r 反向撤销 | dgg 当前行开始,向上全删 |
nyy n是数字 复制当前行及n行 | gg 跳转队首 | d$ 光标开始,删到本行结尾 |
d0 光标开始,删到开头 | ||
-
底线命令模式下的快捷键
一般进入的时候会有一个:
:wq 保存并退出 | :w 仅保存 |
:q 仅退出 | :set nu 显示行号 |
:q! 强制退出 | :set paste 设置粘贴模式 |
:set paste 设置粘贴模式确保粘贴进来什么样就什么样,不会格式错误
Linux用户和权限
root用户
su - root
-
转回去就是exit 或者ctrl+d返回
-
root用户切换其他用户,不需要密码
-
-表示是否要加载环境变量
普通用户的权限,一般只在其home内不受限
其余地方,只有只读和执行权限,无修改权限
但不建议长期使用root用户
sudo命令
为普通命令授权,临时以root身份执行
sudo 其他命令
-
但是我们需要为我们的普通用户配置sudo认证
普通用户配置sudo认证
-
切换到root用户->执行visudo会跳转/etc/sudoers
-
在文件最后添加
-
fanqiechaodan ALL=(ALL) NOPASSWD:ALL
-
-
退出的时候记得打:
sudo mkdir wenjian->就可以在根目录下面创建文件
用户,用户组管理
都是需要root用户执行
创建用户组
-
groupadd 用户组名
删除用户组
-
groupdel 用户组名
用户管理
创建用户
useradd [-g -d] 用户名
-
-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
-
-d指定用户HOME路径,不指定,HOME目录默认在: /home/用户名
useradd test -g nihao -d /home/test2 -- 在这里的-g就是创建一个了新的组叫做了nihao
删除用户
userdel[-r] 用户名
-
-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留该创建的目录
查看用户所属组
id [用户名]
-
用户名,被查看的用户,如果不提供则查看自身
修改用户所属组
-
usermod -a-G 用户组 用户名
-
-a -g将指定用户,加入指定用户组
-
-g强行设置某个用户所在组
-
-G 把某个用户改为group(s)
-
getent 查看当前系统有哪些用户
getent psaawd
-
描述的信息为:用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
getent group 查看组
组名称:组认证(X):组ID
查看权限控制
ls展示的信息中
-
第一个大块 文件,文件夹的权限控制信息
-
-
r表示读权限,可以查看文件内容
对文件夹,可以查看文件夹内容,如ls命令
-
w表示写权限,可以修改此文件
对文件夹,可以在文件夹内:创建、删除、改名等操作
-
x表示执行权限,可以将文件作为程序执行
针对文件夹,表示可以更改工作目录到此文件夹,即cd进入
-
-
第二个 文件,文件夹所属用户(指的就是当前用户可以使用的权限)
-
对应着2-4号位的信息
-
三,文件,文件夹所属用户组()
-
5-7号位的信息
-
其余的用户,就是对应着最后三位的信息
修改权限控制 chmod
我们可以使用chmod命令,修改文件、文件夹的权限信息
注意,只有文件、文件夹的所属用户或root用户可以修改。
-
只有所属文件夹或文件属于我们才可以进行一个更改,我们才可以进行修改
chmod [-R] 权限 文件或文件夹
-
对文件夹内的全部内容应用同样的操作
chmod u=rwx,g=rxo=x hello.txt,将文件权限修改为:rwxr-X--X·
-
其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
chmod -R u=rwx,g=rx,0=x test,将文件夹test以及文件夹内全部内容权限设置为
快捷写法
chmod 751 hello.txt -> rwx-r-x--x
-
7:有全部权限 即rwx 6:有r和w权限 即rw- 5:有r和x权限 即r-X
4:仅有r权限 即r-- 3:有w和x权限 即 -wX 2:仅有w权限 即 -W-
1:仅有x权限 即--x 0:无任何权限 即---
-
令r=4 w=2 x=1 可以方便我们记忆
-
修改权限控制 chown
使用chown命令,可以修改文件、文件夹的所属用户和用户组
普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行
chown [-R] [用户][:][用户组] 文件或文件夹
-
选项,-R,同chmod,对文件夹内全部内容应用相同规则
-
选项,用户,修改所属用户
-
选项,用户组,修改所属用户组
-
: 用于分隔用户和用户组
示例
-
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
-
退出账户的登录
-
退出某些特定程序的专属页面(不能用来退出vi/vim)
历史命令搜素
history
-
查看历史输入过的命令
-
可以用 history |grep ch
!
-
!+前缀 会自动匹配之间输入过的
ctrl+r
-
输入内容匹配历史命令
-
如果是想要的回车执行,不是就键盘左右键,使其不会执行
光标移动快捷键
-
ctrl+a 跳到命令开头
-
ctrl+e 结尾
-
ctrl+键盘左键 向左跳一个单词
-
ctrl+键盘右键,向右跳一个单词
清屏
-
ctrl+l 清空终端内容
-
通过命令clear也可以
软件安装
yum命令(CentOS)
RPM包软件管理器,用于自动化安装配置Linux软件并可以自动解决依赖问题
yum [-y] [install remove search] 软件名称
-
选项:-y,自动确认,无需手动确认安装或卸载过程
-
install: 安装
-
remove:卸载
-
search:搜索是是否有安装包,检查商店是否有
yum命令需要root权限哦,可以su切换到root,或使用sudo提权.yum命令需要联网
apt管理器(ubuntu安装软件)
apt [-y] [install remove|search] 软件名称
需要root权限 sudo su -root (跟centos不一样)
-
apt install wget,安装wget
-
apt remove wget,移除wget
-
apt search wget,搜索wget
systemctl命令
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动停止开机自启
能够被systemctl管理的软件,一般也称之为:服务
systemctl start|stop | status | enable | disable 服务名
-
start 启动
-
stop 关闭
-
status查看状态
-
enable开启开机自启
-
disable 关闭开机自启
可以手动添加将没有集成到systemctl中的软件
软链接
在系统中创建软链接,可以将文件、文件夹链接到其它位置,类似于快捷方式
ln -s 参数1 参数2
-
-s选项,创建软连接
-
参数1:被链接的文件或文件夹
-
参数2:要链接去的目的地,可以自己取名字
列子
ln -s /etc/yum.conf ~/yum.conf
把/etc/yum.conf该路径下的东西创建一个链接,并放到/yum.conf这里
日期和时区
data 查看时间
data [-d] [+格式化字符串]
-
-d 按照给定的字符串显示日期,一般用于日期计算
-
year年 month月 day天 hour小时 minute分钟 second秒
-
date -d "+1 day " +%Y%m%d 计算的是后一天
-
-
-d选项可以和 格式化字符串配合一起使用
-
-
格式化字符串: %Y 年 %y 年份后两位数字)(00到99) %m月份(01_12)
%d 日(01_31) %H小时(00_23) %M 分钟(00_59) %S秒(00_60)
%s 自1970-01-01 00:00:00 UTC 到现在的秒数
date +%Y-%m-%d -> 2022-10-08
书写的时候,有空格的话就会把他认为独立的参数,所以我们要用" "包围起来
Linux时区
修改时区
使用root权限,执行如下命令,修改时区为东八区时区
-
rm -f /etc/localtime
-
sudo In -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntp程序 自动校准
-
安装: yum -y install ntp
-
并设置开机自启
-
systemctl start ntpd
-
systemctl enable ntpd
-
也可以手动校准(需要root) ntpdate -u ntp.aliyun.com
ip地址和主机名
ifconfig
若无法使用 进行安转yum -y install net-tools
-
127.0.0.1 代表的是本机的地址
-
0.0.0.0特殊的ip地址
-
代指本机
-
可以在端口绑定中用来确定绑定关系
-
在一些ip地址限制中,表示所有ip的意思,表示允许任意ip访问
-
主机名
hostname 就可以显示出来
-
可以使用命令:hostnamectl set-hostname 主机名,修改主机名(需root)
域名解析
网站地址对应ip
-
先看本机的记录(私人地址本)
-
win 看 C:\windows\System32\drivers\etc\hosts
-
linuxkan /etc/hosts
-
-
如果没有再联网DNS服务器
记事本右键管理员打开,找到上面的win地址
输入ip地址 和主机名
-
保存之后在这里就可以只输入主机名就可以了(主机那个位置就不用书写ip)
虚拟机配置固定ip
当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更 原因1:办公电脑IP地址变化无所谓,但是我们要远程连接到Linux系统,如果1P地址经常变化我们就要频繁修改适配很麻烦 原因2: 在刚刚我们配置了虚拟机IP地址和主机名的映射,如果IP频繁更改,我们也需要频繁更新映射关系 综上所述,我们需要IP地址固定下来,不要变化了。
配置
-
在VMware Workstation(或Fusion)中配置IP地址网关和网段(IP地址的范围)
-
左上角编辑->虚拟网络编辑器->VMnet8
-
子网掩码确认为255.255.255.0
子网后两个.的数字我们进行更改 什么什么66.0 77.0都可以(代表范围就是192.168.159.0-192.168.159.254)
nat设置 网关设置为刚刚子网的192.168.159.2 设置2是因为,因为1被主路由器占用了
-
-
在Linux系统中手动修改配置文件,固定IP
使用root去编辑,因为这个文件只读
-
使用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33
-
-
然后在centos 的终端去执行
systemctl stop network 关闭 (关闭之后finalshell就连不上了)
systemctl start network 打开
就ip进行固定成功了
-
苹果怎么固定没看
网络传输
ping命令
通过命令没检查指定的网络服务器是否是 可连通状态
ping [-c num] ip或主机名
-
-c检查的次数,不设置,将会无限期检查
-
ip或主机名,被检查的地址
wget命令
wget [-b] url
-
-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
-
: url,下载链接
通过tail命令查看后台下载 tail -f wget-log 查看他的底部
curl命令
curl可以发送http网络请求,可用于下载文件,获取信息等
curl [-O] url
-
-O 用于下载文件,当url是下载链接时,可以使用此选项保存文件
-
参数url,要发起请求的网址
端口
端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类
-
物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等
-
虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
-
公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口, HTTPS服务的443端口,非特殊需要,不要占用这个范围的端口
-
注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
-
动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用
查看端口的占用
nmap
可以通过Linux命令去查看端口的占用情况 使用nmap命令,安装nmap:yum -yinstallnmap
语法 nmap 被查看的IP地址
nmap 127.0.0.1 (127.0.0.1是默认的本机地址)
22端口是ssh
netstat
netstat -anp l grep 端口号或进程号
安装netstat: yum -yinstall net-tools
进程管理
程序运行在操作系统中,是被操作系统所管理的。 为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个! 进程并会为每一个进程都分配一个独有的: 进程ID(进程号)
ps [-e -f]
-
选项:-e,显示出全部的进程
-
选项:-f,以完全格式化的形式展示信息(展示全部信息)
UID:进程所属的用户ID
PID :进程的进程号ID
PPID : 进程的父ID(启动此进程的其它进程 )。
C:此进程的CPU占用率(百分比 )
STIME:进程的启动时间
TTY:启动此进程的终端序号,如显示?,表示非终端启动
TIME:进程占用的cpu的时间
CMD:进程响应的名称或启动路径或启动命令
过滤 通过grep
进程的关闭
kill [-9] 进程id
-
-9 是进行强行关闭.不适用此选项会向进程发送要求其关闭
主机状态监控
系统资源控制top命令
可以通过top命令查看cpu,内存使用情况
-
默认5秒1次
-
ctrl +c 或q就能退出
选项
-
-p:只显示某个进程的信息+进程号
-
-d: 设置刷新时间,默认是5sa
-
-c:显示产生进程的完整命令,默认是进程名,command更加完整
-
-n:指定刷新次数,比如 top -n 3,刷新输出3次后退出
-
-b: 以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如 top -b -n 3 > /tmp/top.tmp
-
-i: 不显示任何闲置 (idle) 或无用 (zombie)的进程
-
-u: 查找特定用户启动的进程+用户名
前五行
top: 命令名称;14:39:58:当前系统时间;up 6 min:启动了6分钟;2 users: 2个用户登录;load: 1,5、15分钟负载
Tasks:175个进程; 1running:1个进程子在运行;174 sleeping: 174个进程睡眠 ; stopped: 0个停止进程; zomble :0个僵尸进程
%Cpu(S):CPU使用率;uS:用户CPU使用率;sy: 系统CPU使用率;n: 高优先级进程占用CPU时间百分比;id: 空闲CPU率;wa: I/0等待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运行僵死状态,N负数优先级,I空闲状态) %CPU:进程占用CPU率 %MEM:进程占用内存率 TIME+:进程使用CPU时间总计,单位10毫秒 COMMAND:进程的命令或名称或程序文件路径
top交互式选项
当top以交互式运行(非 -b选项启动)
-
h键,会显示快捷键,并告知作用->q退出
-
c键,会显示产生进程的完整命令,等同于-C参数,再次按下c键,变为默认显
-
f键,可以选择需要展示的项目,按下空格选择想要展示的属性
-
M键,根据驻留内存大小(RES)排序
-
P键,根据CPU使用百分比大小进行排序
-
T键,根据时间/累计时间进行排序
-
E键,切换顶部内存显示单位,kib就是KB
-
e键,切换进程内存显示单位
-
I键,切换显示平均负载和启动时间信息(在最底部)
-
i键,不显示闲置或无用的进程,等同于-i参数,再次按下,变
为默认显示
-
t键,切换显示CPU状态信息
-
m键,切换显示内存信息,四五行变为进度条
磁盘信息监控df
df [-h]
-
-h 以更加人性化的单位显示
使用iostat 查看cpu,磁盘的相关信息
iostat [-x] [num1][num2]
-
-x,显示更多信息
-
num1:数字,刷新间隔,num2:数字,刷新几次
tps:该设备每秒的传输次数
-
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个F5,如果FS发现不同的读取请求读取的是相同Blok的数据,F5会将这个请求合并Merge,提高I0利用率,避免重复调用);
-
wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
-
rsec/s:每秒读取的扇区数;sectors
-
wsec/:每秒写入的扇区数。
-
rKB/s:每秒发送到设备的读取请求数
-
WKB/s:每秒发送到设备的写入请求数
-
avgrq-sz:平均请求扇区的大小
-
avqqu-sz:平均请求队列的长度。毫无疑问,队列长度越短越好
-
await:每一个I0请求的处理的平均时间(单位是微秒毫秒)
-
svctm表示平均每次设备I/0操作的服务时间(以毫秒为单位)
-
%util:磁盘利用率
网络状态监控 sar
sar -n DEV num1num2
-
-n,查看网络,DEV表示查看网络接口
-
num1 刷新间隔时间 ,num2 查看次数(不填就是无限)
信息
-
IFACE 本地网卡接口的名称
-
rxpck/s每秒钟接受的数据包
-
txpck/s 每秒钟发送的数据包
-
rxKB/S每秒钟接受的数据包大小,单位为KB
-
txKB/S每秒钟发送的数据包大小,单位为KB
-
rxcmp/s每秒钟接受的压缩数据包
-
txcmp/s每秒钟发送的压缩包
-
rxmcst/s每秒钟接收的多播数据包
环境变量
是操作系统在运行的时候,记录的一些关键性信息,用以辅助系统运行
执行env 可以查看当前系统中记录的环境变量
cd命令就记录在PATH中
$符号
在Linux系统中,$符号被用于取”变量”的值。
环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用。
取得环境变量的值就可以通过语法:$环境变量名 来取得,就是获取记录的路径
比如echo $PATH就会
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/fanqiechaodan/.local/bin:/home/fanqiechaodan/bin
-
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/fanqiechaodan/.local/bin:/home/fanqiechaodan/bin
-
当我们想进行拼接的时候,就是想输出自己的内容,就要echo ${PATH}ABC ->/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/fanqiechaodan/.local/bin:/home/fanqiechaodan/binABC
自行设置环境变量
-
临时设置语法:export 变量名=变量值
-
永久生效
-
针对当前用户生效,配置在当前用户的: ~/bashrc文件中
vim ~/.bashrc ->在末尾 export 变量名=变量值 ,保存后->source .bashrc->进行echo 变量名就可以进行使用了
-
针对所有用户生效,配置在系统的: /etc/profile文件中
-
并通过语法 :source 配置文件,进行立刻生效,或重新登录FinalShell生效
-
自定义环境变量PATH
脚本小程序创建文件夹->使用vim 创建并编辑文件->假设文件里面写了一个输出命令echo "哈哈哈"->查看文件权限(需要x权限才能当做程序使用)->chmod 755 文件名->./文件名 就可以执行里面的内容了
-
vim /etc/profile->在最末尾 export PATH=$PATH:/刚刚那个文件夹
->source /etc/profile->现在就只需要输入文件名就可以了
上传下载
我们可以通过Finalshell工具方便的和虚拟机进行数据交换。在Finalshell软件的下方窗体中提供了Linux的文件系统视图,可以方便的
-
下载:浏览文件系统,找到合适的文件,右键点击下载,即可传输到本地电脑-
-
会下载到桌面fsdoenload中
-
想传输root文件夹的,我们需要在配置那个地方把用户改为root
-
-
上传:浏览文件系统,找到合适的目录,将本地电脑的文件拓展进入,即可方便的上
-
先在finalshell中找到想要传过去的目录,往里一拖就可以了
-
通过命令上传下载rz,sz
yum -y install lrzsz
sz 文件名字(tap可以进行补齐)
rz 回车,就会弹出系统文件的框->找到相应的文件,点击之后就会上传(速度慢)
压缩和解压
压缩格式
linux 主要使用zip,tar,gzip
.tar 称之为tarbal,归档文件,即简单的将文件组装到一个tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装 gz,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的 体积
使用tar命令均可以进行压缩和解压缩的操作
tar [c -v -x -f -z -C] 参数1参数2 ... 参数N
-
-c,创建压缩文件,用于压缩模式
-
-V,显示压缩、解压过程,用于查看进度
-
-X,解压模式
-
-f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
-
-z,gzip模式,不使用-z就是普通的tarball格式
-
-C 选择解压的目的地,用于解压模式
常用的组合:压缩
-z如果使用要在第一个, -f必须在最后
-
tar -cvf test.tar 1.txt 2.txt 3.txt 将1,2,3压缩到test.tar中
-
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt 将1,2压缩到test.tar.gz文件中,使用gzip(在这里可以将.tar给删掉)
解压
-
tar -xvf test.tar 解压test.tar,将文件解压至当前目录
-
tar -xvf test.tar -C /home/itheima解压test.tar,将文件解压至指定目录(/home/itheima)
-
tar -zxvf test.tar.gz -C /home/itheima以Gzip模式解压test.tar.gz,将文件解压至指定目录(/home/itheima)
-f选项,必须在选项组合体的最后一位,- z选项,建议在开头位置 -C选项单独使用,和解压所需的其它参数分开
zip命令压缩文件
zip [-r] 参数1 参数2 ...参数N
-
-r,被压缩的包含文件夹的时候,需要使用-r选项,
-
和rm、cp等命令的-r效果一致
-
列子
-
zip test.zip a.txt b.txt c.txt 将a.txt b.txt ctxt 压缩到test.zip文件内
-
zip -r test.zip test itheima a.txt将test、itheima两个文件夹和a.txt文件,压缩到test.zip文件内
unzip解压
语法:unzip[-d]参数
-
-d,指定要解压去的位置,同tar的-C选项参数,被解压的zip压缩包文
示例:
-
unzip test.zip,将test.zip解压到当前目录
-
unzip test.zip -d /home/itheima,将test.zip解压到指定文件夹内(/home/itheima)
如果有同名的内容的话,会直接就进行替换