Linux 学习笔记__Day2
目录
十二、上传和下载文件
十三、软件包的安装和卸载
十四、打包和压缩
1、zip命令
2、tar命令
3、其它打包压缩的命令
十五、Linux进程
1、查看进程
2、终止进程
十六、性能分析top
1、top输出结果说明
2、top常用的选项
3、top交互命令
4、demo01.cpp
5、demo02.cpp
十七、其它Linux命令
1、查找目录和文件find
2、查看系统磁盘分区df
3、查看内存和交换区free
4、远程拷贝目录和文件scp
5、列出目录文件树tree
6、统计目录的大小du
7、获取帮助man
十二、上传和下载文件
在SecureCRT中,把鼠标移到连接窗口的标题上,按鼠标右链,选“链接SFTP”标签。
显示本地当前目录:lpwd
显示服务器当前目录:pwd
列出本地目录中的内容:lls -l 目录名
列出服务器目录中的内容:lls -l 目录名
切换本地当前目录:lcd 目录名
切换服务器当前目录:cd 目录名
上传文件:put 文件名,可以用*匹配文件名。
下载文件:get 文件名,可以用*匹配文件名。
退出SFTP:exit
十三、软件包的安装和卸载
以前,Linux只能用rpm安装软件包,需要手工解决软件包的依赖关系。
软件包A -> 软件包B -> 软件包C
yum(Yellow dog Updater, Modified)是基于rpm的软件包管理器,能够从指定的服务器下载软件包并且安装,还可以自动处理依赖性关系,一次性安装所有依赖的软件包。
使用yum之前,必须保证Linux系统可以访问互联网(因为yum仓库在互联网上)。
软件包的安装和卸载需要系统管理员权限。
1、安装软件包。
yum -y install 软件包名
2、删除软件包。
yum -y remove 软件包名
3、升级软件包。
yum update 软件包名
4、如何知道需要安装的软件包名
百度之。
5、yum仓库
互联网上有很多yum仓库,不需要任何配置就可以使用。
不允许访问互联网的企业用户可能自建yum仓库。
6、查找软件包。
yum search 软件包名
7、列出所有可更新的软件包清单。
yum check-update
8、更新所有软件包。
yum update
9、列出所有可安装软件包的清单;
yum list
十四、打包和压缩
1、zip命令
先安装zip的软件包:yum -y install zip unzip
打包压缩:zip -q -r -d -u 压缩包文件名 目录和文件名列表
-q:不显示命令执行的过程。
-r:递归处理,打包各级子目录和文件。
-u:把文件增加/替换到压缩包中。
-d:从压缩包中删除指定的文件。
解包解压:unzip 压缩包文件名
注意:zip是通用的压缩格式,Windows和Linux都支持。
2、tar命令
压缩打包:tar zcvf 压缩包文件名 目录和文件名列表
解包解压:tar zxvf压缩包文件名
注意:tar压缩包文件在Windows系统中可以用winrar打开,但是,winrar不能生成tar压缩包文件。
3、其它打包压缩的命令
在Linux系统中,还有其它的打包压缩和解包解压命令,例如bzip/bunzip和gzip/gunzip。
十五、Linux进程
进程就是系统中正在运行的程序(linux的命令也是程序)。
1、查看进程
用ps命令可以查看进程。
方法一:
ps -ef|less
ps -ef|grep 关键字
UID 启动进程的用户名。
PID 进程编号。
PPID 父进程编号。
C 进程当前占用CPU的百分比,如果该值过高,需要重点关注。
STIME 进程启动的时间。
TTY 运行进程的终端:tty1是图形化终端;tty2-tty6是本地字符界面终端;pts/0-255是虚拟终端;?是与终端无关的后台进程。
TIME 进程使用的CPU时间(合计)。
CMD 产生此进程的程序或命令。
方法二:
ps aux|less
ps aux|grep 关键字
UID 启动进程的用户名。
PID 进程编号。
%CPU 进程占用的CPU百分比。
%MEM 占用内存的百分比。
VSZ 该进程使用的虚拟內存量(KB)。
RSS 该进程使用的物理內存量(KB)。
TTY 运行进程的终端:tty1是图形化终端;tty2-tty6是本地字符界面终端;pts/0-255是虚拟终端;?是与终端无关的后台进程。
STAT 进程的状态。
START 进程启动的时间。
TIME 进程使用的CPU时间(合计)。
COMMAND 产生此进程的程序或命令。
其中STAT常见的状态有:
R 运行状态
S 休眠状态
T 暂停状态
Z 僵尸状态
< 优先级高的进程
N 优先级低的进程
s 进程的领导者(在它之下有子进程)
l 多线程
+ 前台显示的进程
2、终止进程
kill 进程编号
killall 程序名
加-9的选项表示强行终止进程。
十六、性能分析top
top是Linux下常用的性能分析工具,能实时显示系统运行的总体状态和每个进程使用资源的情况,类似于Windows的任务管理器。
top [选项]
1、top输出结果说明
前5行是系统整体的统计信息,从第8行开始是进程信息。
第一行是系统运行的统计信息
top:当前时间。
up:系统运行了多长时间。
users:当前登录的用户数。
load average:系统负载,在一段时间内,CPU正在处理和等待处理的进程数之和,三个数值分别是最近1分钟、5分钟、15分钟的平均值。
load average的三个数值,它能反映服务器的负载情况。但是,数值高了也并不能直接代表这服务器的性能有问题,可能是因为正在进行CPU密集型的计算,也有可能是因为I/O问题导致运行队列堵了。所以,当我们看到这个数值飙升的时候,还得具体问题具体分析。一个CPU在一个时间片里面只能运行一个进程,CPU核数的多少直接影响到这台机器在同一时间能运行的进程数。一般来说,只要load average的数值没超过这台机器的总核数,就基本没啥问题。
第二行是进程的统计信息
Tasks:当前有多少进程
running:正在运行的进程数
sleeping:正在休眠的进程数
stopped:停止的进程数
zombie:僵尸进程数
一般情况下,running越多,服务器自然压力就越大。
第三行是CPU的统计信息
us:用户进程占用CPU的百分比(shell程序、各种应用程序、web服务程序等都是运行在用户地址空间的进程)。
sy:内核进程占用CPU的百分比(用户进程如果要使用系统资源,都是通过内核进程来处理的,对操作系统来说,内核进程消耗时间应该是越少越好。但是,有一种情况会使sy变大,那就是大量的IO操作)。
ni:改变过优先级的用户进程占用CPU的百分比(ni是nice的缩写,用户进程的优先级可以调整,这里显示的ni表示调整过优先级的进程消耗掉的CPU时间,如果系统中没有进程被调整过优先级,那么ni就显示为0)。
id:空闲CPU的百分比。
wa:等待磁盘I/O的进程占用CPU的百分比(和CPU的处理速度相比,磁盘IO操作是非常慢的。CPU在发出磁盘I/O操作的指令后,需要等待磁盘I/O操作的结果,在磁盘I/O操作完成前,CPU只能处于等待状态。Linux系统在计算系统负载时会把CPU等待I/O操作的时间也计算进去。所以,如果系统的负载过高,可以通过wa来判断系统的性能瓶颈是不是I/O操作造成的)。
hi:硬中断占用CPU的百分比(硬中断是硬盘、网卡等硬件设备发送给CPU的中断消息,当CPU收到中断消息后需要进行处理,因此消耗CPU时间)。
si:软中断占用百分比(软中断是由程序发出的中断,也会执行相应的处理程序,消耗CPU时间)。
st:用于有虚拟CPU的情况,用来指示被虚拟机用掉的CPU时间。
第四行是内存的统计信息
total:物理内存总量。
free:空闲内存量。
used:已使用的内存量。
buff/cache:用作内核缓存的内存量。
第五行是交换区的统计信息
total:交换区总量。
free:空闲交换区大小。
used:已使用交换区的大小。
avail Mem:下一次可分配给进程的物理内存数量。
从第八行开始是进程的信息
PID:进程id。
USER:进程所有者。
PR:进程的优先级,越小优先级越高。
NI:nice值,负值表示高优先级,正值表示低优先级。
VIRT:进程使用的虚拟内存,单位是kb。
RES:进程使用的物理内存,单位kb。
SHR:进程使用的共享内存,单位kb。
S:进程状态(S表示休眠,R表示正在运行, Z表示僵死状态,N表示该进程优先值为负数,I表示空闲状态)。
%CPU:进程占用的CPU使用率。
%MEM:进程使用的物理内存和总内存的百分比。
TIME+:进程使用的CPU时间总计,单位:1/100秒。
COMMAND:命令行。
进程信息缺省按%CPU降序排列。
2、top常用的选项
-d 指定屏幕信息刷新的时间间隔,缺省是3秒,如果希望10秒刷新一次,则使用:top -d 10
-u 只显示指定用户的进程,如果希望只显示wucz用户的进程,则使用:top -u wucz
-p 只显示指定的进程,例如:top -p 1038, 1038是进程编号。
-i 不显示闲置和僵尸的进程,例如:top -i
-c 显示产生进程的完整命令,例如:top -c
3、top交互命令
按下q键,退出top。
按下h键,显示帮助画面。
按下c键,显示产生进程的完整命令,等同于-c选项,再次按下c键,变为默认显示。
按下f键,可以选择需要展示的项目。
按下M键,根据驻留内存大小(RES)排序。
按下P键,根据CPU使用百分比大小进行排序。
按下T键,根据时间/累计时间进行排序。
按下E键,切换顶部内存显示单位。
按下e键,切换进程内存显示单位。
按下l键,切换显示平均负载和启动时间信息。
按下t键,切换显示CPU状态信息。
按下m键,切换显示内存信息。
4、demo01.cpp
#include <iostream>
#include <unistd.h>
using namespace std;
int main()
{
for (long ii=0;ii<10000000000000000;ii++)
{
int *ptr=new int[100000000]; // 申请100000000*sizeof(int)大小的内存。
//delete [] ptr; // 释放内存。
if (ii%10==0) usleep(1); // 每10次循环睡眠千分之一秒。
}
}
5、demo02.cpp
#include <iostream>
#include <fstream> // ofstream类需要包含的头文件。
using namespace std;
int main()
{
ofstream fout;
fout.open("demo.log", ios::trunc); // 打开日志文件。
for (int ii = 1; ii <= 50000000000; ii++)
fout << "这是第"<<ii<<"行日志。" << endl;
fout.close(); // 关闭文件,fout对象失效前会自动调用close()。
cout << "操作文件完成。\n";
}
十七、其它Linux命令
1、查找目录和文件find
find 查找目录 -name "文件名" -print
例如:
1)在当前目录及子目录中查找*.h文件。
find . -name "*.h" -print
2)在/home/wucz目录及子目录中查找*.h文件。
find /home/wucz -name "*.h" -print
2、查看系统磁盘分区df
df
df -m
df -h
3、查看内存和交换区free
free -m
free -h
4、远程拷贝目录和文件scp
采用ssh协议在两个Linux服务器之间拷贝目录和文件。
1)把远程服务器的目录拷贝到本地。
scp -r root@192.168.150.130:/tmp/aa /tmp/bb
2)把本地目录拷贝到远程服务器。
scp -r /tmp/bb root@192.168.150.130:/tmp/cc
-r 表示递归处理(连同子目录一起拷贝)。
-P 指定ssh协议的通讯端口,缺省是22。
5、列出目录文件树tree
tree [选项]
-d 只列出目录,不列出文件。
-D 列出目录和文件的修改时间。
-p 列出目录和文件的权限。
-f 列出目录和文件名的路径。
-a 列出隐藏的目录和文件。
6、统计目录的大小du
du -m
du -h
7、获取帮助man
安装英文帮助文档
yum -y install man-pages
安装中文帮助文档
man-pages-zh-CN
使用帮助
man 命令名
其余不常用命令用到时可自行百度解决