作者:小徐
制作时间:20180601
联系方式:xiaoxubigdata@163.com
Linux是一套免费使用和自由传播的类Unix操作系统(主要用在服务器上),接下来详细的介绍一下linux的一些知识。
Redhat 官网
centos下载
https://www.centos.org/download/
Ubuntu中国官网
https://cn.ubuntu.com/download/
搜狐镜像
163镜像
阿里巴巴镜像
https://opsx.alibaba.com/mirror
/ :根目录,一般的只存放目录把存放文件
bin & use/bin :存放可执行的二进制文件
boot/:存放linux启动时用到的文件
dev/ :存放linux设备的文件,访问这个目录相当于访问一个设备,常用于挂载磁盘
etc / :系统配置文件存放的目录
home/ :系统默认的用户家的目录,新增用户账号时就会新增一个目录,
lib & user/lib & user/local/lib:系统木人的函数库的目录,程序在执行时,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。
lost+fount/:系统异常产生错误时,会将一些遗失的片段放在此目录下,通常这个装备会自动出现在装置的目录下。
mnt/medis:光盘默认的挂载点,通常挂载于/mnt/cdrom下,也可以用户自己执行目录的挂载点。
opt/:给主机额外安装的所摆放的目录。
proc/:此目录的数据存放在内存中,如系统的核数,外部设备,网络状态,由于数据存放在内存中,所以不占用磁盘的空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、、、、
root/:系统管理员的家目录,系统第一个启动的分区为/,所以最好将root/和/放在一个分区下
srv/:系统启动之后需要启动的数据的目录,例如www服务需要访问的网页存在www内
usr/:应用程序存放的目录,usr/bin存放应用程序,/usr/share/存放共享数据,/usr/lib存放不能直接运行的可以被许多程序运行所必要的函数库文件。
var/:存放系统执行变化中经常变化的文件,如随时更改的日志文件:/var/log
/var/log/message:所有的登录的文件存放目录
/var/spool/mail:邮件的存放的目录
/var/run:程序或服务的启动
建议用户自己安装的软件在opt目录下。
镜像下载地址:http://pan.baidu.com/s/1dENJjs1 密码:z46s , 如果出现无法连接请联系作者。虚拟机的版本是11,镜像为CentOS-6.7 64 并以此在以下机器上执行操作,或按照以上的中国镜像地址下载镜像。
以下为win的环境
桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位(虚拟网卡既不是VMware Network Adepter VMnet1也不是VMware Network Adepter VMnet8)。桥接模式必须要使用交换机或路由器才能和外界通信,此时,虚拟机自身和物理机是相互独立的,处于同等地位,如果虚拟机和物理机的网卡在同一网段,是相互能通信的。
在NAT网络中,会用到VMware Network Adepter VMnet8虚拟网卡,主机上的VMware Network Adepter VMnet8虚拟网卡被直接连接到VMnet8虚拟交换机上与虚拟网卡进行通信。VMware Network Adepter VMnet8虚拟网卡的作用仅限于和VMnet8网段进行通信,它不给VMnet8网段提供路由功能,所以虚拟机虚拟一个NAT服务器,使虚拟网卡可以连接到Internet。VMware Network Adepter VMnet8虚拟网卡的IP地址是在安装VMware时由系统DHCP指定生成的,我们不要修改这个数值,否则会使主机和虚拟机无法通信。
在Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。其实Host-Only网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到Internet。主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1虚拟网卡来实现的。
# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop1
或者在终端上输入setup 进去到IP的设计界面
[hadoop@hadoop1 root]$ su
# passwd
Changing password for user root.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
# cd /root/
# ssh-keygen
# ssh-copy-id hadoop2
# ssh-copy-id hadoop3
# date -s "2016-09-27 16:40:30"
把时间写入到磁盘
# clock -w
或
# hwclock -w
# cat /etc/sysconfig/clock
ZONE="America/Los_Angeles"
# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
1) Afghanistan 18) Israel 35) Palestine
2) Armenia 19) Japan 36) Philippines
3) Azerbaijan 20) Jordan 37) Qatar
4) Bahrain 21) Kazakhstan 38) Russia
5) Bangladesh 22) Korea (North) 39) Saudi Arabia
6) Bhutan 23) Korea (South) 40) Singapore
7) Brunei 24) Kuwait 41) Sri Lanka
8) Cambodia 25) Kyrgyzstan 42) Syria
9) China 26) Laos 43) Taiwan
10) Cyprus 27) Lebanon 44) Tajikistan
11) East Timor 28) Macau 45) Thailand
12) Georgia 29) Malaysia 46) Turkmenistan
13) Hong Kong 30) Mongolia 47) United Arab Emirates
14) India 31) Myanmar (Burma) 48) Uzbekistan
15) Indonesia 32) Nepal 49) Vietnam
16) Iran 33) Oman 50) Yemen
17) Iraq 34) Pakistan
#? 9
Please select one of the following time zone regions.
1) east China - Beijing, Guangdong, Shanghai, etc.
2) Heilongjiang (except Mohe), Jilin
3) central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
4) most of Tibet & Xinjiang
5) west Tibet & Xinjiang
#? 1
The following information has been given:
China
east China - Beijing, Guangdong, Shanghai, etc.
Therefore TZ='Asia/Shanghai' will be used.
Local time is now: Sat Dec 31 22:25:15 CST 2016.
Universal Time is now: Sat Dec 31 14:25:15 UTC 2016.
Is the above information OK?
1) Yes
2) No
#? 1
You can make this change permanent for yourself by appending the line
TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# hwclock
# date
Sat Dec 31 23:09:50 CST 2016
写入到本地的时间,输入yes覆盖本地的文件
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# ntpdate asia.pool.ntp.org 或 # ntpdate 210.72.145.44
# cal
December 2016
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
添加时以tab键分割,也可以配置多个映射
# vi /etc/hosts
192.168.215.314 hadoop1
192.168.215.135 hadoop2
192.168.215.136 hadoop3
# vi /etc/sysconfig/network
# vi /etc/udev/rules.d/70-persistent-net.rules
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# reboot
# cd /var/
# ll
drwxr-xr-x. 2 root root 4096 Oct 28 15:36 account
drwxr-xr-x. 2 root root 4096 Sep 23 2011 games
drwxrwx--T. 2 root gdm 4096 Oct 15 2014 gdm
drwxr-xr-x. 36 root root 4096 Nov 18 07:50 lib
drwxr-xr-x. 2 root root 4096 Sep 23 2011 local
drwxrwxr-x. 5 root lock 4096 Nov 20 18:39 lock
drwxr-xr-x. 11 root root 4096 Nov 20 05:57 log
lrwxrwxrwx. 1 root root 10 Oct 28 15:28 mail -> spool/mail
drwxr-xr-x. 2 root root 4096 Sep 23 2011 nis
drwxrwxrwt. 2 root root 4096 Nov 19 04:49 tmp
drwxr-xr-x. 6 root root 4096 Nov 19 06:53 www
drwxr-xr-x. 2 root root 4096 Sep 23 2011 yp
-rw-r--r--. 1 root root 131335162 Nov 18 06:24 pa.bin
如上第一个红色的有不同的含义:d代表目录,L代表链接,—代表文件。1-3位数字代表文件所有者的权限,4-6位数字代表同组用户的权限,7-9数字代表其他用户的权限。
而具体的权限是由数字来表示的,读取的权限等于4,用r表示;写入的权限等于2,用w表示;执行的权限等于1,用x表示;
通过4、2、1的组合,得到以下几种权限:0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)
rwx ----> 4 + 2 +1 = 7
r-x ----> 4 + 0 + 1 = 5
r--. ----> 4 + 0 = 4
查看一下命令那个不会,请自觉百度学习
awk / arch /
bc /
cp / clock -w / chmod / chkconfig / cal / cut /chmod / cat / crotable / clean /
date / diff / df / du -sh /
echo / exit /
find / free / fdisk -l /
gzip / Grep /
Help / histroy / head / hostname /
ifconfig / init
kill /
ls / less / locate /logout / lastlog / lscpu / ln / lscpu / lsblk / lspci
mv / mkdir / more / make && make install /
nl / netstat -ntlp /
Pwd / ping / ps /
Reboot / rm -rf / rpm /
scp / ssh-keygen / ssh-copy-id / setup / Shutdown / server /sh /sed / sync / su / sudo / sort /
tar / tail -f / top /tac / tree / tzselect /
useradd / users / useradd / userdel / ulimit / uname / unzip /
vi /
wget / who / which / wc /
yum /
zip /
tail -f : 小f跟踪文件的唯一index的就算文件修改了名字后也是跟踪的原来的文件。
tail -F :按照文件的名字来跟踪。
具体的用法可以访问:http://man.linuxde.net/ 或者链接:http://pan.baidu.com/s/1slCn4O9 密码:rscu 如果无法下载请联系作者。
http://www.runoob.com/linux/linux-tutorial.html
http://www.cnblogs.com/jary-wang/archive/2013/04/22/3036105.html
http://cb.vu/unixtoolbox_zh_CN.xhtml#traffic
显示磁盘的相关信息,例如磁盘的大小,挂载磁盘的一些信息
-a 包含全部的文件系统。
-h 或--human-readable 以可读性较高的方式来显示信息。
-H 或--si 与-h 参数相同,但在计算时是以 1000 Bytes 为换算单位而非 1024 Bytes。
-i 或--inodes 显示 inode 的信息。
-k 或--kilobytes 指定区块大小为 1024 字节。
-l 或--local 仅显示本地端的文件系统。
-m 或--megabytes 指定区块大小为 1048576 字节。
--no-sync 在取得磁盘使用信息前,不要执行 sync 指令,此为预设值。
-P 或--portability 使用 POSIX 的输出格式。
--sync 在取得磁盘使用信息前,先执行 sync 指令。
-t<文件系统类型>或--type=<文件系统类型> 仅显示指定文件系统类型的磁盘信息。
-T 或--print-type 显示文件系统的类型。
-x<文件系统类型>或--exclude-type=<文件系统类型> 不要显示指定文件系统类型的磁盘信息。
--help 显示帮助。
--version 显示版本信息。
# df -a
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 52403200 2327740 50075460 5% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
devtmpfs 883440 0 883440 0% /dev
*********
按照不同的大小显示信息
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ol-root 50G 2.3G 48G 5% /
devtmpfs 863M 0 863M 0% /dev
tmpfs 873M 0 873M 0% /dev/shm
**********
或用df -H 命令
以下命令不常用
# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ol-root 52403200 2327740 50075460 5% /
devtmpfs 883440 0 883440 0% /dev
*********
显示系统目录或文件的大小
-a 或-all 显示目录中个别文件的大小。
-b 或-bytes显示目录或文件大小时,以byte为单位。
-c 或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D 或--dereference-args 显示指定符号连接的源文件大小。
-h 或--human-readable 以 K,M,G 为单位,提高信息的可读性。
-H 或--si 与-h 参数相同,但是 K,M,G 是以 1000 为换算单位。
-k 或--kilobytes 以 1024 bytes 为单位。
-l 或--count-links 重复计算硬件连接的文件。
-L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m 或--megabytes 以 1MB 为单位。
-s 或--summarize 仅显示总计。
-S 或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-x 或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
--help 显示帮助。
--version 显示版本信息。
# du -a
4 ./test1/test.sh
4 ./test1
0 ./test2
0 ./test3
4 .
是以当前目录开始显示的
# du -sh
4.0K .
或
# du -s
# du -h
制定文件夹显示大小
# du test1/
4test1/
对文件的复制并把文件数据进行格式化处理
bs=<字节数>:将ibs(输入)与欧巴桑(输出)设成指定的字节数;
cbs=<字节数>:转换时,每次只转换指定的字节数;
conv=<关键字>:指定文件转换的方式;
count=<区块数>:仅读取指定的区块数;
ibs=<字节数>:每次读取的字节数;
obs=<字节数>:每次输出的字节数;
of=<文件>:输出到文件;
seek=<区块数>:一开始输出时,跳过指定的区块数;
skip=<区块数>:一开始读取时,跳过指定的区块数;
--help:帮助;
--version:显示版本信息。
# dd if=/dev/zero of=sun.txt bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.000826962 s, 1.3 GB/s
if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。
of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。
bs 代表字节为单位的块大小。
count 代表被复制的块数。
/dev/zero 是一个字符设备,会不断返回0值字节(\0)。
1.3 GB/s 表示当前写入的速度
此命令主要显示内存的一些信息
-b 以 Byte 为单位显示内存使用情况。
-k 以 KB 为单位显示内存使用情况。
-h 以可读的单位显示大小
-m 以 MB 为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
从以下中可以详细的看出内存的信息
# free -h
total:内存的总数量
used:已经使用的内存数量
free:空闲的内存数量
shared:当前已经废弃不用
buffers Buffer:缓存内存数
cached Page:缓存内存数
以下现实的是以MB为单位显示的
# free -m
此命令主要是对文件系统的挂载与卸载的操作
-V:显示程序版本
-l:显示已加载的文件系统列表
-h:显示帮助信息并退出
-v:冗长模式,输出指令执行的详细信息
-n:加载没有写入文件"/etc/mtab"中的文件系统
-r:将文件系统加载为只读模式
-a:加载文件“/etc/fstab”中描述的所有文件系统
-t:限制文件系统类型的集合
-auto:当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto
把/dev/cdrom目录下的文件挂载到/mnt/cdrom下
# mount -t auto /dev/cdrom /mnt/cdrom
此命令主要卸载文件
-a:卸除/etc/mtab中记录的所有文件系统
-h:显示帮助
-n:卸除时不要将信息存入/etc/mtab文件中
-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统
-t<文件系统类型>:仅卸除选项中所指定的文件系统
-v:执行时显示详细的信息
-V:显示版本信息
通过设备名卸载
# umount -v /dev/sda1
/dev/sda1 umounted
通过挂载点卸载
# umount -v /mnt/mymount/
/tmp/diskboot.img umounted
如果电脑上安装的是CD请使用一下命令弹出CD软盘
# eject /dev/cdrom
此命令主要解压zip为后缀的压缩文件
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-t 检查压缩文件是否正确,但不解压。
-d <目录> 指定文件解压缩后所要存储的目录。
-Z unzip -Z等 于执行zipinfo指令。
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-x 压缩时排除符合条件的文件。
-d 从压缩文件内删除指定的文件。
-D 压缩文件内不建立目录名称。
-c 替每个被压缩的文件加上注释。
# mkdir shellShell
# cd shellShell
# vi test1.txt
# vi test2.txt
# unzip apache-maven-3.5.3-bin.zip
# unzip apache-maven-3.5.3-bin.zip -b /home/software/
# zip -r apache-maven-3.5.3.zip apache-maven-3.5.3
-r 代表迭代的意思
$ zip -d shellShell.zip shellShell/test2.txt
deleting: shellShell/test2.txt
注意删除的路径问题
以下命令是把shellShell文件夹添加到apache-maven-3.5.3-bin.zip压缩包中
$ zip -m apache-maven-3.5.3-bin.zip shellShell
***********
adding: shellShell/ (stored 0%)
以下命令是排除shellShell/test1.txt文件到压缩包中
$ zip -r shellShell.zip shellShell/ -x shellShell/test1.txt
*******
adding: shellShell/ (stored 0%)
adding: shellShell/test2.txt (stored 0%)
# unzip -l apache-maven-3.5.3-bin.zip
************
0 2018-06-06 14:20 shellShell/
8.1.3.8
$ unzip -t shellShell.zip
Archive: shellShell.zip
testing: shellShell/ OK
testing: shellShell/test1.txt OK
testing: shellShell/test2.txt OK
No errors detected in compressed data of shellShell.zip.
$ unzip -Z shellShell.zip
Archive: shellShell.zip
Zip file size: 526 bytes, number of entries: 3
drwxr-xr-x 3.0 unx 0 bx stor 18-Jun-06 14:20 shellShell/
-rw-r--r-- 3.0 unx 7 tx defN 18-Jun-06 14:20 shellShell/test1.txt
-rw-r--r-- 3.0 unx 12 tx stor 18-Jun-06 14:20 shellShell/test2.txt
3 files, 19 bytes uncompressed, 18 bytes compressed: 5.3%
在以上的信息中可以看出文件的个数以及占用大小和压缩率
tar 命令主要是对文件的操作,如解压与压缩操作
-j:支持bzip2解压文件
-z或--gzip或--ungzip,通过gzip指令处理备份文件
-Z或--compress或--uncompress,通过compress指令处理备份文件
-x或--extract或--get:从备份文件中还原文件
-v:显示操作过程
-f<备份文件>或--file=<备份文件>:指定备份文件
-c或--create:建立新的备份文件
-C <目录>:制定需要解压的目录路径
$ tar -cvf shellShell.tar shellShell/
shellShell/
shellShell/test1.txt
shellShell/test2.txt
$ tar -zcvf shellShell.gz shellShell/
shellShell/
shellShell/test1.txt
shellShell/test2.txt
$ tar -jcvf shellShell.tar.bz2 shellShell/
shellShell/
shellShell/test1.txt
shellShell/test2.txt
$ tar -ztvf shellShell.tar.gz
drwxr-xr-x xiaoxu/xiaoxu 0 2018-06-06 14:20 shellShell/
-rw-r--r-- xiaoxu/xiaoxu 7 2018-06-06 14:20 shellShell/test1.txt
-rw-r--r-- xiaoxu/xiaoxu 12 2018-06-06 14:20 shellShell/test2.txt
$ tar -zxvf shellShell.tar.gz shellShell/test2.txt
shellShell/test2.txt
$ tar -zxvf shellShell.tar.gz
$ tar -zxvf shellShell.tar.gz -C /home/
-C:是制定解压的路径
bunzip2命令解压缩由bzip2指令创建的”.bz2”压缩包
-f或--force:解压缩时,若输出的文件与现有文件同名时,预设不会覆盖现有的文件;
-k或—keep:在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数;
-s或—small:降低程序执行时,内存的使用量;
-v或—verbose:解压缩文件时,显示详细的信息;
-l,--license,-V或——version:显示版本信息。
-d : 解压后缀为bz2的文件
$ bzip2 -9vk apache-maven-3.5.3-bin.zip
apache-maven-3.5.3-bin.zip: 1.003:1, 7.980 bits/byte, 0.25% saved, 8958105 in, 8935477 out.
$ ls
apache-maven-3.5.3-bin.zip.bz2
$ bunzip2 -d apache-maven-3.5.3-bin.zip.bz2
此命令主要是对大文件进行分割
-b : 按照制定的单位单位分割文件,例如K,M,G
-l : 按照多少行分割文件
-C: 与-b参数类似,但切割时尽量维持每行数据的完整性
# split -b 1M splittest.log
# ls
splittest.log xaa
# split -l 100 splittest.log
# ls
xaa xae xai xam xaq xau xay xbc xbg xbk xbo xbs
***********
可以看到文件都是以x开头的,第二个字母是按照字典的顺序排序的
top 命令能实时查看系统的运行情况,其中包括Mem,swap,cpu等详细信息
h:显示帮助画面,给出一些简短的命令总结说明
k:终止一个进程
i:忽略闲置和僵死进程,这是一个开关式命令
q:退出程序
r:重新安排一个进程的优先级别
S:切换到累计模式
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s
f或者F:从当前显示中添加或者删除项目
o或者O:改变显示项目的顺序
l:切换显示平均负载和启动时间信息
m:切换显示内存信息
t:切换显示进程和CPU状态信息
c:切换显示命令名称和完整命令行
M:根据驻留内存大小进行排序
P:根据CPU使用百分比大小进行排序
T:根据时间/累计时间进行排序
d:设置查询的时间间隔
u:查看某个用户的进程信息
P:以进程号显示详细信息
# top
top - 17:40:53 up 3:38, 1 user, load average: 0.28, 0.22, 0.19
Tasks: 223 total, 1 running, 190 sleeping, 0 stopped, 0 zombie
%Cpu(s): 16.1 us, 2.1 sy, 0.0 ni, 81.6 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3073508 total, 92104 free, 1862180 used, 1119224 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 991416 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1472 xiaoxu 20 0 3118552 378696 97524 S 29.4 12.3 25:48.93 gnome-shell
1332 xiaoxu 20 0 477548 121604 46768 S 5.9 4.0 4:05.39 Xorg
1 root 20 0 159644 8976 6696 S 0.0 0.3 0:01.95 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
********************************
top - 17:40:53 : top命令执行的时间
up 3:38 : 运行的时间
1 user:当前登录用户的个数
load average: 0.28, 0.22, 0.19 : 代表系统1分钟,5分钟,15分钟的负载情况,系统会每隔一段时间统计一次,如果数值高于5说明系统处于高负载的运转了。
Tasks: 223 total, 1 running, 190 sleeping, 0 stopped, 0 zombie 当前系统总共的进程数,1个运行的,190个休眠的,0个停止的,0冻结进程数。
%Cpu(s): 16.1 us, 2.1 sy, 0.0 ni, 81.6 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st : 16.1用户占用的CPU百分比,2.1sy内核空间占用CPU的比例。
KiB Mem : 3073508 total, 92104 free, 1862180 used, 1119224 buff/cache :3073508 total 内存的总量, 1862180 used使用的物理内存的总量,92104 free 空闲的内存总量,1119224 buff/cache作为内核的缓存的内存量。
以下是查看xiaoxu用户的进程信息
# top -u xiaoxu
1515 为进程号
# top -p 1515
此命令主要快速查找正在运行的进程,方便查看进程或杀掉进程
-A, -e :显示所有的进程
-f :所有的格式,包括命令行
-a:显示现行终端机下的所有程序,包括其他用户的程序
-u:以用户为主的格式来显示程序状况
x :显示所有程序,不以终端机来区分
-u, U, 按照用户过滤当前用户的进程
-p, p, --pid :session的ID
以下标红的为当前程序的进程号,可以直接kill掉
$ ps -ef|grep tomcat
xiaoxu 4810 1271 8 09:54 pts/2 00:00:05 /opt/jdk1.8/bin/java -Djava.util.logging.config.file=/home/xiaoxu/software/tomcat-7.0.88/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /home/xiaoxu/software/tomcat-7.0.88/bin/bootstrap.jar:/home/xiaoxu/software/tomcat-7.0.88/bin/tomcat-juli.jar -Dcatalina.base=/home/xiaoxu/software/tomcat-7.0.88 -Dcatalina.home=/home/xiaoxu/software/tomcat-7.0.88 -Djava.io.tmpdir=/home/xiaoxu/software/tomcat-7.0.88/temp org.apache.catalina.startup.Bootstrap start
xiaoxu 4954 2614 0 09:55 pts/0 00:00:00 grep --color=auto tomcat
$ ps -aux|grep tomcat
xiaoxu 4810 14.1 4.0 2728436 123256 pts/2 Sl 09:54 0:05 /opt/jdk1.8/bin/java -Djava.util.logging.config.file=/home/xiaoxu/software/tomcat-7.0.88/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /home/xiaoxu/software/tomcat-7.0.88/bin/bootstrap.jar:/home/xiaoxu/software/tomcat-7.0.88/bin/tomcat-juli.jar -Dcatalina.base=/home/xiaoxu/software/tomcat-7.0.88 -Dcatalina.home=/home/xiaoxu/software/tomcat-7.0.88 -Djava.io.tmpdir=/home/xiaoxu/software/tomcat-7.0.88/temp org.apache.catalina.startup.Bootstrap start
以下查看cpu比较高的并排序
$ ps -aux --sort -pcpu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
xiaoxu 1432 10.4 11.4 3102780 353220 tty2 Sl+ 09:34 6:04 /usr/bin/gnome-shell
xiaoxu 3538 2.6 7.3 1248892 225156 tty2 SLl+ 09:46 1:13 /opt/google/chrome/chrome
*********
以下查看MEM比较高的并排序
$ ps -aux --sort -pmem
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
xiaoxu 1432 10.5 11.4 3101756 352700 tty2 Rl+ 09:34 6:21 /usr/bin/gnome-shell
xiaoxu 3538 2.6 7.3 1248892 225084 tty2 SLl+ 09:46 1:16 /opt/google/chrome/chrome
*********
以下命令会按照树形的结构列出进程的详细信息
# ps -auxefw
显示当前用户登录的信息
-a : 显示所有的登录信息
-b : 显示系统最近启动的时间
-d : 显示系统已经死去的进程
-H: 以标题头的形式显示登录信息
-l : 打印最近系统用户登录的进程
-q或--count:只显示登入系统的帐号名称和总人数;
# who -H
NAME LINE TIME COMMENT
xiaoxu :0 2018-06-07 09:34 (:0)
# who -b
system boot 2018-06-07 09:33
# who -a
system boot 2018-06-07 09:33
xiaoxu ? :0 2018-06-07 09:34 ? 1289 (:0)
run-level 5 2018-06-07 09:34
此命令主要用于把进程放在后台运行
--help:在线帮助;
--version:显示版本信息
# nohup sh test.sh >> test.log
# nohup java -jar test.jar >> test.log 2 > &1 &
赐名主要对运行中的程序或进程进行杀掉,拿板砖的那种,你懂得
-a:当处理当前进程时,不限制命令名和进程号的对应关系;
-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s <信息名称或编号>:指定要送出的信息;
-u:指定用户。
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
# ps -ef|grep tomcat
# kill -9 <processID>
此命令主要用于系统中的定时任务,
-e :编辑当前用户的定时任务
-l:查看当前用户的定时任务
-r:删除定钱用户的定时任务
-i:在删除用户任务之前提示用户确认是否删除
*/5(minute 0-59) *(hour 0-23) *(day of month 1-31) *(month 1-12) *(day of week 0-6)
* * * * * command
分 时 日 月 周 命令
# crontal -l
No crontab for xiaoxu
在电脑上行第一次执行crontab是需要用户选择编辑的模式,一般的选择3的vi模式,详情如下所示,如果想改变执行的模式请使用select-editor选择
# crontab -e
Select an editor. To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.basic
4. /usr/bin/vim.tiny
Choose 1-4 [2]: 3
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每天的 21:30 重启 apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月 1、10、22 日的 4 : 45 重启 apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的 1 : 10 重启 apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的 11 : 00 pm 重启 apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启 apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上 11 点到早上 7 点之间,每隔一小时重启 apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的 4 号与每周一到周三的 11 点重启 apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的 4 点重启 apache
以下是删除全部的任务
# crontab -r
删除部分任务
# crontab -e
选择不需要执行的即可
此命令可以调整程序的优先权,取值的范围在-20到20之间,其中-20位最大值,20位最小值,只有root用户可以为其他用户设置优先级别,也可以设置负数等操作。
-g : 设置该进程所属组的程序的优先级
-p:改变进程的优先级别,此职位预设值
-u:制定用户的名称,修改所属改组程序的优先级
-h:显示此帮助
-V: 显示版本信息
以下操作需要在root的用户下操作,0为程序默认的级别
# ps -axl | grep tomcat
0 1000 4675 1303 20 0 2771444 96308 futex_ Sl pts/0 0:03 /opt/jdk1.8/bin/java -Djava.util.logging.config.file=/home/xiaoxu/software/tomcat-7.0.88/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /home/xiaoxu/software/tomcat-7.0.88/bin/bootstrap.jar:/home/xiaoxu/software/tomcat-7.0.88/bin/tomcat-juli.jar -Dcatalina.base=/home/xiaoxu/software/tomcat-7.0.88 -Dcatalina.home=/home/xiaoxu/software/tomcat-7.0.88 -Djava.io.tmpdir=/home/xiaoxu/software/tomcat-7.0.88/temp org.apache.catalina.startup.Bootstrap start
0 0 4821 4810 20 0 21536 1092 pipe_w S+ pts/0 0:00 grep --color=auto tomcat
把以下级别调整为5,1303位程序的进程ID
# renice 5 -p 1303
4810 (process ID) old priority 0, new priority 5
htop 命令类似于top命令,只不过此命令把一些详细的信息展示出来了,界面更美观
PID:进行的标识号
USER:运行此进程的用户
PRI:进程的优先级
NI:进程的优先级别值,默认的为0,可以进行调整
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR:进程占用的共享内存值
S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态
CPU:该进程占用的CPU使用率
MEM:该进程占用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间
COMMAND:进程启动的启动命令名称
htop官网:http://sourceforge.net/projects/htop/
# yum install -y htop
# htop
其他的操作按F1 进行查看