十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
ps 命令的作用是显示进程信息的;
网站的建设创新互联建站专注网站定制,经验丰富,不做模板,主营网站定制开发.小程序定制开发,H5页面制作!给你焕然一新的设计体验!已为成都塑料袋等企业提供专业服务。
| 符号,是个管道符号,表示ps 和 grep 命令同时执行;
grep 命令是查找(Global Regular Expression Print),能使用正则表达式搜索文本,然后把匹配的行显示出来;
ps命令有一些参数:
-e : 显示所有进程
-f : 全格式
-h : 不显示标题
-l : 长格式
-w : 宽输出
a :显示终端上的所有进程,包括其他用户的进程。
r :只显示正在运行的进程。
u :以用户为主的格式来显示程序状况。
x :显示所有程序,不以终端机来区分。
结果信息从前到后依次是:
UID PID PPID C STIME TTY TIME CMD
zzw 14124 13991 0 00:38 pts/0 00:00:00 grep –color=auto dae
Linux中的top命令显示系统上正在运行的进程。它是系统管理员最重要的工具之一。被广泛用于监视服务器的负载。top命令是一个交互命令。在运行top的时候还可以运行很多命令。
N – 以 PID 的大小的顺序排列表示进程列表
P – 以 CPU 占用率大小的顺序排列进程列表
M – 以内存占用率大小的顺序排列进程列表
q – 退出 top
h – 帮助
1 系统运行时间和平均负载
这些字段显示:当前时间、系统已运行的时间、当前登录用户的数量、相应最近5、10和15分钟内的平均负载。
2 任务
第二行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程概括信息可以用’t’切换显示。
3 CPU 状态
下一行显示的是CPU状态。 这里显示了不同模式下的所占CPU时间的百分比。这些不同的CPU时间表示:
us, user: 运行(未调整优先级的) 用户进程的CPU时间
sy,system: 运行内核进程的CPU时间
ni,niced:运行已调整优先级的用户进程的CPU时间
wa,IO wait: 用于等待IO完成的CPU时间
hi:处理硬件中断的CPU时间
si: 处理软件中断的CPU时间
st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。
4 内存使用
接下来两行显示内存使用率,有点像’free’命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。
物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。相似地:交换部分显示的是:全部、已使用、空闲和缓冲交换空间。
5 各列的意思
PID 进程ID,进程的唯一标识符
USER 进程所有者的实际用户名。
PR 进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。
NI 进程的nice值(优先级)。越小的值意味着越高的优先级。
VIRT 进程使用的虚拟内存。
RES 驻留内存大小。驻留内存是任务使用的非交换物理内存大小。
SHR SHR是进程使用的共享内存。
S 这个是进程的状态。它有以下不同的值:
D – 不可中断的睡眠态。
R – 运行态
S – 睡眠态
T – 被跟踪或已停止
Z – 僵尸态
%CPU 自从上一次更新时到现在任务所使用的CPU时间百分比。
%MEM 进程使用的可用物理内存百分比。
TIME+ 任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
COMMAND 运行进程所使用的命令。
注意 :不同发行版的top命令在各种细节有不同,如果发现不同时,请读你的帮助手册和命令内的帮助。)
kill、kill-15、kill-9区别:
执行kill(默认kill -15)命令,系统会发送一个SIGTERM信号给对应的程序,大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后再停止。用法kill pid。
kill -15 pid。
kill -9命令,系统给对应程序发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。用法kill -9 pid。
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行
cat a.txt 显示文件
vim xx.conf 编辑文件
打开文件后,按insert键进入编辑模式;编辑完后,按esc建退出编辑模式;按shift+冒号后,输入wq保存退出,wq!保存强制退出,q不保存退出
在根目录模糊查找名字含java的文件
服务器端常有很多压缩过的日志文件,当需要查找日志中某些特定信息的时候,为了避免解压文件,可以使用zgrep,zcat等命令查找、查看压缩文件中的信息
zgrep ' 输入你要查找的东东' /目录 /文件 .gz 或者.log (当日)
grep ' 输入你要查找的东东' /目录 /文件 .gz 或者.log (非当日的压缩文件)
例如: zgrep 'callMktCamLoad' app.log.2019-12-03-*.gz
rpm包安装的,可以用 rpm -qa 看到,如果要查找某软件包是否安装,用 rpm -qa | grep "软件或者包的名字"
以deb包安装的,可以用 dpkg -l 看到。如果是查找指定软件包,用 dpkg -l | grep "软件或者包的名字"
yum方法安装的,可以用 yum list installed 查找,如果是查找指定包,用 yum list installed | grep "软件名或者包名"
为什么备份?
一个备份计划对定期备份文件来说很有必要,如果你宁愿选择不备份,那么丢失重要数据的风险会大大增加。有了备份,你就有了从磁盘故障中恢复的能力。备份还可以帮助你抵御:意外的文件删除/文件或文件系统损坏/服务器完全毁坏,包括由于火灾或其他问题导致的同盘备份毁坏、硬盘或 SSD 崩溃、病毒或勒索软件破坏或删除文件、你可以使用磁带归档备份整个服务器并将其离线存储。
理解磁带文件标记和块大小
每个磁带设备能存储多个备份文件。磁带备份文件通过 cpio,tar,dd 等命令创建。同时,磁带设备可以由多种程序打开、写入数据、及关闭。你可以存储若干备份(磁带文件)到一个物理磁带上。在每个磁带文件之间有个“磁带文件标记”。这用来指示一个物理磁带上磁带文件的结尾以及另一个文件的开始。你需要使用 mt 命令来定位磁带(快进,倒带和标记)。
磁带上的数据是如何存储的
所有的数据使用 tar 以连续磁带存储格式连续地存储。第一个磁带归档会从磁带的物理开始端开始存储(tar #0)。接下来的就是 tar #1,以此类推。
Unix 上的磁带设备名
/dev/rmt/0 或 /dev/rmt/1 或 /dev/rmt/[0-127] :Unix 上的常规磁带设备名。磁带自动倒回。
/dev/rmt/0n :以无倒回为特征,换言之,磁带使用之后,停留在当前状态等待下个命令。
/dev/rmt/0b :使用磁带接口,也就是 BSD 的行为。各种类型的操作系统比如 AIX,Windows,Linux,FreeBSD 等的行为更有可读性。
/dev/rmt/0l :设置密度为低。
/dev/rmt/0m :设置密度为中。
/dev/rmt/0u :设置密度为高。
/dev/rmt/0c :设置密度为压缩。
/dev/st[0-9] :Linux 特定 SCSI 磁带设备名。
/dev/sa[0-9] :FreeBSD 特定 SCSI 磁带设备名。
/dev/esa0 :FreeBSD 特定 SCSI 磁带设备名,在关闭时弹出(如果可以的话)。
磁带设备名示例
/dev/rmt/1cn 指明正在使用 unity 1,压缩密度,无倒回。
/dev/rmt/0hb 指明正在使用 unity 0,高密度,BSD 行为。
Linux 上的自动倒回 SCSI 磁带设备名:/dev/st0
Linux 上的无倒回 SCSI 磁带设备名:/dev/nst0
FreeBSD 上的自动倒回 SCSI 磁带设备名:/dev/sa0
FreeBSD 上的无倒回 SCSI 磁带设备名:/dev/nsa0
如何列出已安装的 scsi 磁带设备?
输入下列命令:
### Linux(更多信息参阅 man) ###
lsscsi
lsscsi -g
### IBM AIX ###
lsdev -Cc tape
lsdev -Cc adsm
lscfg -vl rmt*
### Solaris Unix ###
cfgadm –a
cfgadm -al
luxadm probe
iostat -En
### HP-UX Unix ###
ioscan Cf
ioscan -funC tape
ioscan -fnC tape
ioscan -kfC tape
mt 命令示例
在 Linux 和类 Unix 系统上,mt 命令用来控制磁带驱动器的操作,比如查看状态或查找磁带上的文件或写入磁带控制标记。下列大多数命令需要作为 root 用户执行。语法如下:
mt -f /tape/device/name operation
设置环境
你可以设置 TAPE shell 变量。这是磁带驱动器的路径名。在 FreeBSD 上默认的(如果变量没有设置,而不是 null)是 /dev/nsa0。可以通过 mt 命令的 -f 参数传递变量覆盖它,就像下面解释的那样。
### 添加到你的 shell 配置文件 ###
TAPE=/dev/st1 #Linux
TAPE=/dev/rmt/2 #Unix
TAPE=/dev/nsa3 #FreeBSD
export TAPE
1:显示磁带/驱动器状态
mt status ### Use default
mt -f /dev/rmt/0 status ### Unix
mt -f /dev/st0 status ### Linux
mt -f /dev/nsa0 status ### FreeBSD
mt -f /dev/rmt/1 status ### Unix unity 1 也就是 tape device no. 1
你可以像下面一样使用 shell 循环语句遍历一个系统并定位其所有的磁带驱动器:
for d in 0 1 2 3 4 5
do
mt -f "/dev/rmt/${d}" status
done
2:倒带
mt rew
mt rewind
mt -f /dev/mt/0 rewind
mt -f /dev/st0 rewind
3:弹出磁带
mt off
mt offline
mt eject
mt -f /dev/mt/0 off
mt -f /dev/st0 eject
4:擦除磁带(倒带,在支持的情况下卸载磁带)
mt erase
mt -f /dev/st0 erase #Linux
mt -f /dev/rmt/0 erase #Unix
5:张紧磁带盒
如果磁带在读取时发生错误,你重新张紧磁带,清洁磁带驱动器,像下面这样再试一次:
mt retension
mt -f /dev/rmt/1 retension #Unix
mt -f /dev/st0 retension #Linux
6:在磁带当前位置写入 EOF 标记
mt eof
mt weof
mt -f /dev/st0 eof
7:将磁带前进指定的文件标记数目,即跳过指定个 EOF 标记
磁带定位在下一个文件的第一个块,即磁带会定位在下一区域的第一个块(见图01):
mt fsf
mt -f /dev/rmt/0 fsf
mt -f /dev/rmt/1 fsf 1 #go 1 forward file/tape (see fig.01)
8:将磁带后退指定的文件标记数目,即倒带指定个 EOF 标记
磁带定位在下一个文件的第一个块,即磁带会定位在 EOF 标记之后(见图01):
mt bsf
mt -f /dev/rmt/1 bsf
mt -f /dev/rmt/1 bsf 1 #go 1 backward file/tape (see fig.01)
这里是磁带定位命令列表:
fsf 前进指定的文件标记数目。磁带定位在下一个文件的第一块。
fsfm 前进指定的文件标记数目。磁带定位在前一文件的最后一块。
bsf 后退指定的文件标记数目。磁带定位在前一文件的最后一块。
bsfm 后退指定的文件标记数目。磁带定位在下一个文件的第一块。
asf 磁带定位在指定文件标记数目的开始位置。定位通过先倒带,再前进指定的文件标记数目来实现。
fsr 前进指定的记录数。
bsr 后退指定的记录数。
fss (SCSI tapes)前进指定的 setmarks。
bss (SCSI tapes)后退指定的 setmarks。
基本备份命令
让我们来看看备份和恢复命令。
9:备份目录(tar 格式)
tar cvf /dev/rmt/0n /etc
tar cvf /dev/st0 /etc
10:恢复目录(tar 格式)
tar xvf /dev/rmt/0n -C /path/to/restore
tar xvf /dev/st0 -C /tmp
11:列出或检查磁带内容(tar 格式)
mt -f /dev/st0 rewind; dd if=/dev/st0 of=-
### tar 格式 ###
tar tvf {DEVICE} {Directory-FileName}
tar tvf /dev/st0
tar tvf /dev/st0 desktop
tar tvf /dev/rmt/0 foo list.txt
12:使用 dump 或 ufsdump 备份分区
### Unix 备份 c0t0d0s2 分区 ###
ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t0d0s2
### Linux 备份 /home 分区 ###
dump 0uf /dev/nst0 /dev/sda5
dump 0uf /dev/nst0 /home
### FreeBSD 备份 /usr 分区 ###
dump -0aL -b64 -f /dev/nsa0 /usr
13:使用 ufsrestore 或 restore 恢复分区
### Unix ###
ufsrestore xf /dev/rmt/0
### Unix 交互式恢复 ###
ufsrestore if /dev/rmt/0
### Linux ###
restore rf /dev/nst0
### 从磁带媒介上的第6个备份交互式恢复 ###
restore isf 6 /dev/nst0
### FreeBSD 恢复 ufsdump 格式 ###
restore -i -f /dev/nsa0
14:从磁带开头开始写入(见图02)
### 这会覆盖磁带上的所有数据 ###
mt -f /dev/st1 rewind
### 备份 home ###
tar cvf /dev/st1 /home
### 离线并卸载磁带 ###
mt -f /dev/st0 offline
从磁带开头开始恢复:
mt -f /dev/st0 rewind
tar xvf /dev/st0
mt -f /dev/st0 offline
15:从最后一个 tar 后开始写入(见图02)
### 这会保留之前写入的数据 ###
mt -f /dev/st1 eom
### 备份 home ###
tar cvf /dev/st1 /home
### 卸载 ###
mt -f /dev/st0 offline
16:从 tar number 2 后开始写入(见图02)
### 在 tar number 2 之后写入(应该是 2+1)###
mt -f /dev/st0 asf 3
tar cvf /dev/st0 /usr
### asf 等效于 fsf ###
mt -f /dev/sf0 rewind
mt -f /dev/st0 fsf 2
从 tar number 2 恢复 tar:
mt -f /dev/st0 asf 3
tar xvf /dev/st0
mt -f /dev/st0 offline
关于第三方备份工具
Linux 和类Unix系统都提供了许多第三方工具,可以用来安排备份,包括磁带备份在内,如:
Amanda
Bacula
rsync
duplicity
rsnapshot
linux常用命令:
1、查看内核版本:uname-a。
2、图形界面:init5或者startx。
3、控制台:init3或者直接注销。
4、如何查看ip地址:ifconfig。
5、配置ip:ifconfigeth0ip地址。
6、重启:reboot或者shutdown-rnow。
7、普通用户切换到系统用户:su。
8、注销用户指令:logout。
操作命令
首先介绍一个名词控制台(console),它就是我们通常见到的使用字符操作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。
要了解的是基于Linux操作系统的基本控制台命令。有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,如果输入的命令大小写不对的话,系统是不会做出你期望的响应的。
Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
执行netstat后,其输出结果为
从整体上看,netstat的输出结果可以分为两个部分:
一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
列出所有端口 netstat -a
列出所有 tcp 端口 netstat -at
列出所有 udp 端口 netstat -au
只显示监听端口 netstat -l
只列出所有监听 tcp 端口 netstat -lt
只列出所有监听 udp 端口 netstat -lu
只列出所有监听 UNIX 端口 netstat -lx
显示所有端口的统计信息 netstat -s
显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su
netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。
当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。
同样可以加速输出,因为不用进行比对查询。
如果只是不想让这三个名称中的一个被显示,使用以下命令
netstat 将每隔一秒输出网络信息。
在输出的末尾,会有如下的信息
注意: 使用 netstat -rn 显示数字格式,不查询主机名称。
并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。
找出运行在指定端口的进程
显示详细信息,像是 ifconfig 使用 netstat -ie:
查看连接某服务端口最多的的IP地址
TCP各种状态列表
Steal 值比较高的话,你需要向主机供应商申请扩容虚拟机。服务器上的另一个虚拟机可能拥有更大更多的 CPU 时间片,你可能需要申请升级以与之竞争。另外,高 steal 值可能意味着主机供应商在服务器上过量地出售虚拟机。如果升级了虚拟机, steal 值还是不降的话,你应该寻找另一家服务供应商。
低 steal 值意味着你的应用程序在目前的虚拟机上运作良好。因为你的虚拟机不会经常地为了 CPU 时间与其它虚拟机激烈竞争,你的虚拟机会更快地响应。
这一点也暗示了,你的主机供应商没有过量地出售虚拟服务,绝对是一件好事情。
1.touch命令
touch命令用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”。
2.mkdir命令
mkdir命令用于创建空白的目录,格式为“mkdir [选项] 目录”。
在Linux系统中,文件夹是最常见的文件类型之一。除了能创建单个空白目录外,mkdir命令还可以结合-p参数来递归创建出具有嵌套叠层关系的文件目录。
[root@linuxprobe ~]# mkdir linuxprobe
[root@linuxprobe ~]# cd linuxprobe
[root@linuxprobe linuxprobe]# mkdir -p a/b/c/d/e
[root@linuxprobe linuxprobe]# cd a
[root@linuxprobe a]# cd b
[root@linuxprobe b]#
如果还有不明白的地方可以参考第二章节建议看看《Linux就该这么学》 里面有个专栏是 Linux命令大全(手册) 加入我们的群,一起讨论 Linux