技巧快捷键
ctrl+c强制停止
Linux某些程序的运行如果要强制停止它,可以使用ctrl+c快捷键
如果命令输入错误,也可以使用ctrl+c快捷键,退出当前输入
ctrl+d退出和或登出
使用快捷键退出账户登录
退出某些特定程序的专属页面(退出Python编译器)
历史命令记录
history
数字越大,使用时间越靠前,还可以与管道符利用,使用grep过滤出想要的命令
!
通过!+命令前缀,按照history从下往上查找,自动执行上一次使用的匹配前缀的命令,但因为命令会有重复的原因,所以用于近期输入的命令更加精准
ctrl+r
那历史内容应该怎么去搜索执行呢?通过ctrl+r命令可以输入内容去匹配命令
回车键可直接执行
如果匹配不正确可以使用键盘左右键,可以得到此命令修改它(不执行)
光标移动快捷键
还有什么移动到命令开头或者结尾,其实home或者end就够用了,暂时没看到有啥区别
ctrl+键盘左键,向左跳一个单词
ctrl+键盘右键,向右跳一个单词
单词的判定方式:利用空格或者,。、以及其他符号隔开的字符
软件安装
yum命令
yum:RPM包软件管理器,用于自动化安装配置Linux文件,并可以自动解决依赖问题
yum命令需要联网和root权限或者sudo提权
语法:
yum [-y] [install | remove | search] 软件名称
选项,-y,自动确认,无需手动确认安装或卸载过程
install:安装
remove:卸载
search:搜索
安装wget软件成功
systemctl命令
Linux中包含很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
能够被systemctl管理的软件,一般也称之为:服务
语法:
systenctl start | stop | status | enable | disable 服务名
start:启动
stop:关闭
status:查看状态
enable:开启开机自启
disable:关闭开机自启
系统内置的服务比较伛,比如:
Network Manager:主网络服务
network:副网络服务
firewalld:防火墙服务
sshd,ssh服务
除了内置文件,部分第三方软件安装后也可以使用systemctl进行控制,这是因为在安装过程中,一些第三方软件互自动集成到systemctl中成为服务
部分软件安装后没有自动集成到systemctl中,我们可以手动添加,
软链接
在系统中创建软链接可以将文件、文件夹链接到其他位置,类似windows系统中的快捷方式
语法:
ln -s 参数1 参数2
-s,创建软链接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地
检查链接是否生效
日期、时区
date命令
通过date命令可以在命令行中查看系统的时间
语法:
date [-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 到现在的秒数
因为最后一个参数日期和时间之间有空格,所以使用双引号表示一个整体
date命令进行日期加减
-d一般用于日期计算
date -d " +- n 时间标记 " [+格式化字符串]
+-:指在当前基础上增加或减少
n:数字,表增加或减少的时间数
时间标记:增加或减少的时间单位
也是需要 "" 闭合,表一个整体
其中支持的时间标记有:
year年
month月
day天
hour小时
minute分钟
second秒
配合格式化字符串
IP地址
每个联网的电脑都会有一个地址,用于和其他计算机进行通讯
IPV4版本的地址格式是:a.b.c.d,其中abcd表示0-255的数字,如192.168.1.5就是一个标准的IP地址
在Linux中使用命令:ifconfig,查看本机的IP地址
ens33一般就是Linux系统的主网卡,inet就表示当前的IP地址
除了标准的IP地址以外,还有几个特殊的IP地址:
127.0.0.1
用于指代本机
0.0.0.0
特殊地址,可以用于指代本机
可以在端口绑定中用来确定绑定关系
在一些IP地址限制中,表示所有IP的意思,如:放行规则设置为0.0.0.0,表示允许任意IP访问
主机名
每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名,操作系统都可以设置设备主机名
修改LInux主机名
可以使用命令hostnamectl set-hostname 主机名 在root环境下修改主机名
域名解析
可以通过主机名找到对应计算机的IP地址,这就是主机名映射(域名解析)先通过系统本机的记录去查找,如果找不到就联网去公开DNS服务器的查找
如使用FinalShell在windows中远程连接centos配置地址时,一般使用主机ip
也可以在windows的hosts文件中配置centos IP地址,使得可以直接从windows本地目录中找到对应的IP地址,就可以像百度那样不记IP直接使用主机名连接
网络请求和下载
ping命令
通过ping命令,检查指定的网络服务器是否是可连通状态
语法:
ping [-c num] ip或主机名
-c:检查次数,不使用-c,将会无限次持续检查
参数:ip或主机名,被检查的服务器的ip地址或主机名地址
检查到baidu.com是否连通,没有添加-c选项所以会一直ping下去,直到使用ctrl+c强制结束
除了检测是否联通,ping命令也给出了baidu的ip地址与延迟响应时间
使用ip地址ping也是能够ping通的
wget命令
wget是非交互式的文件下载器,可以在命令行内下载网络文件
语法:
wget [-b] url
-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
url,下载链接
无论下载是否完成,都会生成要下载的文件,需要自己动手清理半成品软件,例如我这里的六个hadoop
因为网络下载很慢,所以多测试一下,结果没收住下多了
后台下载,提示在后台金继续下载,输出将会写入到wget-log文件中,所以如果我们想要查看下载进度,也就可使用前面学过的tail -f 命令从后面持续跟踪wget-log文件
curl命令
curl命令可以发送http网络请求,可用于:下载文件、获取信息等
语法:
curl [-O] url
-O,用于下载文件,当url是下载链接是,可以用此选项保存本间
url,要发起请求的网络地址
本质上来说curl跟访问网页差不多,在向百度发起请求时,会返回网页的HTML源码,前面添加一个www,返回结果会完全一点
端口
指的是设备与外界通讯交流的出入口。端口可以分为:物理接口和虚拟接口两类
物理端口:又称之为接口,是可见的端口,如USB接口、Rj45端口
虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
计算机程序之间的通讯,通过IP只能锁定计算机,但无法锁定具体的程序。
通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通
可以理解为IP地址是一个程序的集合,一个IP地址里可以包含多个程序,想要与集合内的程序进行联系,就要依靠虚拟端口
Linux系统是一个超大号的“小区”,可以支持65535个端口,一共分三类:
公认端口:1~1023,通常用于一些系统内置或知名好吃呢关系的预留使用,如ssh服务的22端口,https服务的443端口,非特殊需要,不要占用这个范围的端口
如:在FinalShell中连接centos系统时,给的默认端口就是Linux留给ssh服务的公认端口
注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用
查看端口占用
nmap命令
通过nmap命令可以查看指定IP地址有哪些端口是对外公开
语法:
nmap 被查看的IP地址
因为127.0.0.1是指代本机的意思,所以这个命令意思就是查看本机有哪些端口是对外暴露的,可以看到127.0.0.1(本机)上有4个端口被占用
netstat命令
可以通过netstat命令查看指定端口的占用情况
语法:
netstat -anp | grep 端口号
因为grep可以过来过滤前面命令结果的所有想要的数据,通过grep过滤查询想要的情况
通过过滤查看742进程占用的端口
进程
程序运行在操作系统中,是被操作系统所管理的
为了管理运行的程序,每个程序在运行的时候,便被操作系统注册为系统中的一个进程
并会为每一个进程都分配一个独有的进程ID(进程号)跟windows系统中的任务管理器一样
查看进程
语法:
ps [-e] [-f]
-e,显示出全部的进程
-f,以完全格式化的形式展示信息(展示全部信息)
一般来说固定用法就是ps -ef列出全部进程信息
进程信息解释
从左到右分别是:
UID:进程所属用户ID
PID:进程的进程号ID
PPID:进程的父ID(启动此进程的其他进程)
C:此进程的CPU占用
STIME:进程的启动时间
TTY:启动此进程的终端序号,如显示?,表示非终端启动,而是系统内置启动
TIME:进程累计占用CUP的时间
CMD:进程对应的名称或启动路径或启动命令
查看指定进程
配合管道符|可以查看到指定的进程信息
无论想要查看的信息是进程的所属用户,进程号或者是累计使用时间都可以指定过滤出来
配合管道符ps -ef | grep tail查看tail进程
过滤所有所属用户是chen的进程
进程的关闭
语法:
kill [-9] 进程ID
-9,表示强制关闭进程
若不使用-9选项会向进程发送信号要求其关闭但是是否关闭看进程自身的处理机制
正常结束进程和强制结束进程的结果不同
第一个是终止,是系统向tail命令发送信号,让其接结束进程,由命令自行结束
第二个是杀死,是系统不向tail发送命令,直接强制结束tail命令
也可以在图形化界面中的system tools中选择系统监视器查看进程
主机状态监控
查看系统占用
top命令
语法:
top [-p 进程ID][ -d num] [-c ] [-n num] -b -i -u]
-p:只显示某个进程的信息
-d:设置刷新时间,默认是5s
-c:显示产生进程的完整命令(COMMAND),默认是进程名或者精简的信息
-n:指定刷新次数
-b:以非交互非全屏模式运行,以批次的方式执行top回显到屏幕上,一般配合-n指定输出几次统计信息,将输出重定向到指定文件 例:top -b -n 3 > /2.txt
-i:不显示任何闲置(idle)或无用(zombie)的进程
-u:查找指定用户启动的进程
可以通过top命令,查看CPU、内存使用情况,类似Windows的任务管理器
top命令显示出来的界面,默认每五秒钟刷新一次,按q或者ctrl+c可以退出top界面
top命令内容解释
先看top命令置顶部分
第一行:系统
top:命令名称
20:25:40:当前运行top的系统时间
up 17min:系统已经启动了17分钟
4 users:4个用户登录
load:1、5、15分钟平均负载
第二行:进程
Tasks:当前总共有231个进程
1 running:当前只有一个进程在运行
230 sleeping:230个进程在睡眠
0 stopped:0个停止进程
0 zombie:0个僵尸进程
第三行:CPU
%Cpu(s):CPU使用率
us:用户自主启动的程序的CPU使用率
sy:系统自动启动的程序的CPU使用率
ni:高优先进程占用CPU时间百分比
id:空闲CPU率
wa:IO等待CPU占用率
hi:CPU硬件中断率
si:CPU软件中断率
st:强制等待占用CPUlv
第四五行:内存
Kib Men:物理内存
total:总量
free:空闲
used:使用
buff/cache:buff和cache占用
KibSwap:虚拟内存(交换空间)
再看管理器界面
PID:进程ID
USER:进程所属用户
PR:进程优先级,越小越高
NI:负值表示高优先级,正值表示低优先级
VIRT:进程号使用虚拟内存,单位KB
RES:进程使用物理内存,单位KB
SHR:进程使用共享内存,单位KB
S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
%CPU:进程占用CPU率
%MEM:进程占用内存率
TIME+:进程使用CPU时间总计,单位10毫秒
COMMAND:进程的命令或名称程序文件路径
top交互式选项
当top以交互式运行(非-b选项启动),可以通过一下交互命令进行控制
按键 | 功能 |
h | 显示帮助信息,介绍快捷键的作用 |
c | 会显示产生进程的完整命令 |
f | 可以选择需要展示的项目 (空格确定) |
M | 根据驻留内存大小(RES)排序 |
P | 根据CPU使用百分比大小进行排序 |
T | 根据时间/累计时间进行排序 |
E | 切换顶部内存显示单位(K M G T P E) |
e | 切换进程内存显示单位(K M G T P) |
l | 关闭或开启显示平均负载和启动时间信息 |
i | 不显示闲置或无用的进程信息,等同于-i参数,再次按下变为默认模式 |
t | 切换CPU状态显示信息 |
m | 切换内存显示信息 |
磁盘信息监控
df命令
使用df命令,可以查看硬盘的使用情况
语法:
de [-h]
-h,以更加人性化的单位显示
Filesystem:文件系统
Size:大小
Used:已用
Avail:可用
Use%:已用百分比
Mounted on:挂载点
iostat命令
可以使用iostat命令查看CPU、磁盘的相关信息
语法:
iostat [-x] [num1] [num2]
-x:显示更多信息
num1:数字,刷新间隔
num2:数字,刷新几次
rkB/s:每秒发送到设备的读取请求数
wkB/s:每秒发送到设备的写入请求数
%util:磁盘利用率
网络状态监控
sar命令
使用sar命令查看网络相关统计(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:每秒接胡搜的多播数据包
环境变量
解释
结合之前的which命令,我们可以知道,使用的命令实质上是一个个可执行的程序,但是为什么在任何目录或用户下都可以用命令而不会有阻挡呢,这个就是环境变量的作用
环境变量是操作系统在运行的时候,记录的一些关键性的信息,用于辅助系统运行
在Linux系统中执行env命令可以查看当前系统中记录的环境变量
环境变量是一种Key=Value(键值对)型结构
PATH
之前提出的无论当前的工作目录是什么都能执行命令程序,就是借助环境变量中的PATH这个项目的值来做到的
PATH记录的系统执行任何命令的搜索路径,路径之间由:隔开
/usr/local/bin
/usr/local/sbin
/usr/bin
/usr/sbin
/bin
/sbin
/home/chen/.local/bin
/home/chen/bin
当执行任何命令都会按照上述顺序,在路径中搜索要执行的程序的本体
如执行cd命令,就从第三个目录/usr/bin中查找到cd命令,并执行
$符号
在Linux系统中,$符号被用于取“变量”的值
环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用
知道环境变量的键,取得环境变量的值就可以通过语法:$环境变量来取得
比如:echo $PATh
自行设置环境变量
Linux中环境变量可以用户自行设置,其中分为:
临时设置
export 命令用于设置或显示环境变量,export 可新增,修改或删除环境变量,供后续执行的程序使用。如果直接使用,它仅限于该次登陆操作,退出终端后失效
语法:
export 变量名=变量值
永久生效
针对当前用户生效,配置在当前用户的: ~/.bashrc文件中
针对所有用户生效,配置在系统的: /etc/profile文件中
并通过语法:source 配置文件,进行立刻生效,或重新登录生效
自定义环境变量PATH
环境变量PATH这个项目里面记录了系统执行命令的搜索路径,我们可以自行添加路径到PATH中去
例:
在当前root用户中创建文件夹myenv,在文件夹内部创建文件mkhaha
通过vim编译器,在mkhaha文件内填入echo hahaha,并给mkhaha提供x可执行权限
发现不能在任意工作目录执行,所以如下修改PATH值,在原本的PATH中添加myenv路径,就可以在任意目录中使用mkhaha了
上传、下载
通过finalshell工具远程连接Linux系统,方便进行数据交换
在finalshell下方的窗体中,提供了Linux的文件系统视图可以方便的
浏览文件系统,找到合适的文件,右键下载,即可传输到本地电脑
浏览文件系统,找到合适的目录,将本地电脑的文件按拓展进入,即可方便的上传数据到Linux中
rz、sz命令
通过sz命令将Linux中的文件下载到本地机上
语法:
sz 要下载的文件
通过rz命令上传文件到Linux
语法:
rz
直接输入rz然后在本地浏览要上传的文件
rz命令传输大文件速度较慢,如果要传输大文件,直接利用finalshell拖拽会更快
压缩和解压
压缩格式
zip格式: Linux、Windows、MacOS,常用
7zip: windows系统常用
rar: windows系统常用
tar: Linux、MacOS常用
gzip:Linux、MacOS常用
tar命令
tar压缩
.tar:称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积减少,仅仅是简单的封装
.gz::也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件夹内,可以极大的减少压缩后的体积
语法:
tar [-c -v -x -f -z -C] 参数1 参数2 ……参数N
-c,创建压缩文件,用于压缩模式
-v,显示压缩,解压过程,用于查看进度
-x,解压模式
-f,指定要创建的文件,或要解压的文件,-f 必须 在所有选项中位置处于最后一个
-z,gzip模式,不适用-z就是普通的tarball模式,-z一般处于选项位第一个
-C,选择解压的目的地,用于解压模式,单独使用,和解压所需的其他参数分开
利用普通压缩将文件压缩到test.tar中,可以看到体积大小并没有太大的变化,所以普通模式下压仅仅起到封装的作用
利用gzip格式压缩,将文件压缩到test2.tar.gz中,可以很明显的看出相比tar压缩方式小了很多
tar解压
解压tar普通压缩格式文件
解压gzip压缩格式文件并指定路径
zip命令压缩文件
可以使用zip命令,压缩文件尾zip压缩包
语法:
zip [-r] 压缩文件名称 参数1 参数2 …… 参数N
-r,被压缩的包含文件夹的时候,需要用到-r选项
将文件和文件夹压缩到test.zip中
unzip命令解压文件
语法:
unzip 参数 [-d]
参数,被解压的zip压缩文件
-d,指定要解压去的位置
解压时,如果存在同名内容,会被直接替换掉
将test.zip解压到cx文件夹中