快学Big Data--Linux(八)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xfg0218/article/details/82317090

Linux总结

 

概述

    Linux是一套免费使用和自由传播的类Unix操作系统(主要用在服务器上),接下来详细的介绍一下linux的一些知识。

 

Linux 目录结构说明

1-1)、目录树

 

 

1-2)、目录树介绍

/ :根目录,一般的只存放目录把存放文件

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目录下。

Linux 在虚拟机中安装以及环境的配置

镜像下载地址:http://pan.baidu.com/s/1dENJjs1 密码:z46s , 如果出现无法连接请联系作者。虚拟机的版本是11,镜像为CentOS-6.7  64  并以此在以下机器上执行操作:

1-1)、安装虚拟机

 

 

 

 

 

1-2)、在虚拟机中安装Centos

A)、安装向导

 

 

B)、选择硬件兼容模式

 

 

 

 

C)、选择系统所在路径

 

 

D)、输入用户名与密码

 

E)、设置虚拟机的名字

 

 

F)、设置虚拟机的核数

 

 

G)、设置虚拟机的内存

 

 

H)、设置虚拟机的网络类型

 

 

在此主要讲解前三种,即桥接模式,NAT模式,仅主机模式

1-1)、桥接模式

    桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位(虚拟网卡既不是VMware Network Adepter VMnet1也不是VMware Network Adepter VMnet8)。桥接模式必须要使用交换机或路由器才能和外界通信,此时,虚拟机自身和物理机是相互独立的,处于同等地位,如果虚拟机和物理机的网卡在同一网段,是相互能通信的。

1-2)、NAT模式

   在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指定生成的,我们不要修改这个数值,否则会使主机和虚拟机无法通信。

1-3)、仅主机模式

    在Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。其实Host-Only网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到Internet。主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1虚拟网卡来实现的。

 

 

 

 

I)、选择磁盘的类型

 

 

J)、选择磁盘

 

 

K)、指定磁盘的大小

 

 

L)、指定磁盘文件

 

M)、准备创建好磁盘

 

N)、创建好虚拟机并启动

 

 

 

1-3)、修改主机名字

[root@hadoop1 sbin]# vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=hadoop1

 

1-4)、Linux 网络配置

 

 

 

 

 

 

 

或者在终端上输入setup 进去到IP的设计界面

 

 

 

 

 

 

1-5)、给超级管理员设置密码

[hadoop@hadoop1 root]$ su

[root@hadoop1 ~]# 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:

1-6)、生成秘钥

[root@hadoop1 ~]# cd /root/

[root@hadoop1 root]# ssh-keygen

1-7)、传送秘钥

[root@hadoop1 /]# ssh-copy-id hadoop2

[root@hadoop1 /]# ssh-copy-id hadoop3

 

1-8)、修改时间与日期

A)、如果当前为中国标准时间执行一下操作

[root@hadoop1 /]# date -s "2016-09-27 16:40:30"

[root@hadoop1 /]# clock -w

[root@hadoop1 ~]# hwclock -w

 

B)、设置中国区域的时区

[root@ckycloud1 ~]# cat /etc/sysconfig/clock

ZONE="America/Los_Angeles"

 

[root@hadoop1  ~]# 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

 

 

[root@ckycloud1 opt]# cp /usr/share/zoneinfo/Asia/Shanghai   /etc/localtime

[root@ckycloud1 opt]# hwclock

[root@ckycloud1 opt]# date

Sat Dec 31 23:09:50 CST 2016

 

写入到本地的时间,输入yes覆盖本地的文件

[root@ckycloud1 opt]#  cp  /usr/share/zoneinfo/Asia/Shanghai   /etc/localtime

 

D)、查看当前的月份

[root@ckycloud1 opt]# 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

 

E)、使用ntpdate同步时间

[root@hadoop1 testData]# ntpdate asia.pool.ntp.org   或  [root@hadoop1 testData]# ntpdate 210.72.145.44

1-9)、添加其他的机器的地址

[root@hadoop1 /]# vi /etc/hosts

192.168.215.314  hadoop1

192.168.215.135  hadoop2

192.168.215.136  hadoop3

 

Linux 克隆机器

1-1)、选择机器进行克隆

 

1-2)、进行克隆

 

 

1-3)、查看克隆完毕

 

1-4)、修改名字

[root@skycloud3 ~]# vi /etc/sysconfig/network

1-5)、修改网卡

[root@skycloud4 ~]# vi /etc/udev/rules.d/70-persistent-net.rules

 

 

1-6)、删除eth0网卡的UUID

[root@skycloud4 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

 

 

 

1-7)、重启机器即可

[root@hadoop4 conf]# reboot

Linux 文件权限问题

[root@localhost var]# cd /var/

[root@localhost 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

Linux 常用命令

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 如果无法下载请联系作者。

1-1)、查找最近一天新增的文件

[root@hadoop1 ~]# find / -ctime -1

 

-1  是前一天的,一次类推

1-2)、ls 使用

[root@hadoop1 local]# ls -l -R start_sh/

start_sh/:

total 32

-rw-r--r--. 1 root root  14 Dec 10 17:56 1.text

-rw-r--r--. 1 root root  16 Dec 10 17:58 2.text

1-3)、查看文件夹下的文件的总大小

[root@hadoop1 local]# du -h start_sh/

36K  start_sh/

1-4)、查看文件夹下的每个问价的每个的大小

[root@hadoop1 local]# du -ah start_sh/

4.0K start_sh/zookeeper.sh

4.0K start_sh/2.text

4.0K start_sh/spark_start.sh

4.0K start_sh/hadoop.sh

4.0K start_sh/slave

4.0K start_sh/1.text

4.0K start_sh/kafka_start.sh

4.0K start_sh/redis.sh

36K start_sh/

 

[root@hadoop1 local]# du -ch kafka

68K kafka/config

5.4M kafka/logs

27M kafka/libs

496K kafka/site-docs

80K kafka/bin/windows

3.2M kafka/bin

36M kafka

36M total

1-5)、立刻关机

[root@hadoop1 /]# shutdown -h now

1-6)、十分钟之后关机

[root@hadoop1 /]# shutdown -h +10

1-7)、等于立马关机

[root@hadoop1 /]# halt

1-8)、重启命令

[root@hadoop1 /]# reboot

 

1-9)、Xshell清屏命令

[root@hadoop1 /]# clear

Ctrl + l  清屏快捷键

1-10)、Vi 常用命令

命令模式、插入模式、末行模式

 

A)、命令模式常用命令

向右移动 --> l

向左移动 --> h

向下移动 --> j

向上移动 --> k

 

删除光标所在位置的字符 --> x

删除光标所在的行 --> dd(敲 d 两次)

保存当前修改并退出 --> ZZ

撤销上一步操作 --> u

移动光标到行首 --> 0 (数字0)

移动光标到行末 --> $

移动光标到当前页最顶行 --> H

移动光标到当前页最底行 --> L

向前翻一页(Page Up) --> Ctrl + f

向后翻一页(Page Down) --> Ctrl + b

 

复制当前行的数据 --> yy

粘贴已经复制的数据 --> p

 

把当前行第一次出现的old字符串替换成new字符串 --> :s/old/new

把当前行出现的所有old字符串替换陈gnew字符串 --> :s/old/new/g

把文件中出现的所有old字符串替换陈gnew字符串 --> :%s/old/new/g

 

退出并保存 --> ZZ

B)、插入模式常用命令

在光标 左侧输入正文[常用] --> i

在光标 右侧输入正文[常用] --> a

在光标所在行的 下一行增添新行 --> o

在光标所在行的 上一行增添新行 --> O

在光标 所在行的开头输入正文 --> I

在光标 所在行的末尾输入正文 --> A

C)、末行模式

保存文件  [常用] --> w

将当前文件的内容保存到file文件 --> w file

保存文件并退出vi编辑器[常用] --> wq

读取file 文件的内容,插入当前光标所在行的后面 --> r file

退出vi编辑器(如果当前文件有改动,则无法退出) --> q

强制退出vi编辑器(不保存修改)[常用] --> q!

 

D)、移动光标的操作

光标到行首  -->  Home

光标到行尾  -->  End

向上翻页    -->  Page Up

向下翻页    -->  Page Down

删除光标位置的字符 -->  Delect

向前移动一页  --> Ctrl+f

向后移动一页  --> Ctrl+b

光标向左移动一个字符   [常用]  --> h

光标向下移动一个字符   [常用]  --> j

光标向上移动一个字符   [常用]  --> k

光标向右移动一个字符   [常用]  --> l

把光标移到行尾         [常用] --> 0

把光标移到行首         [常用] --> $

把光标移到文件的末尾   [常用] --> G

把光标移到文件的开头   [常用] --> gg

把光标移到下一个单词的开头[常用]->w

把光标移到当前或下一个单词的字尾[常用]->e

快速删除全部内容 -> dG

1-11)、Sed命令的使用,s表示字符串,g表示每一行

[root@hadoop1 /]# cat 1.text

a

b

a

[root@hadoop1 /]# sed 's/b/xiaozhang/g' 1.text

a

xiaozhang

a

 

1-12)、Awk 处理文本

[root@hadoop1 /]# last -n 3| awk '{print$1}'

root

root

Reboot

 

 

Print可以选择第几列

[root@hadoop1 /]# cat /etc/passwd|awk -F ':' '{print$1}'

root

bin

daemon

adm

 

BEGIN 选择打印的头部信息,END 结束的时得打印

[root@hadoop1 /]# cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'

name,shell

root,/bin/bash

bin,/sbin/nologin

daemon,/sbin/nologin

 

1-13)、Shell 清除屏幕快捷键

Ctrl +  l

 

1-14)、Netstart 命令过滤查找命令

[root@skycloud2 redis_cluster]# netstat -nltp|grep redis

1-15)、Crontab 的使用

格式基本格式 :

* * * * * command

分  时  日 月  周  命令

例如:

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

1-16)、软连接命令

实例:sudo ln -s 源文件 目标文件

删除:[root@hadoop1 software]  rm -rf  源文件

1-17)、查看Linux 的版本

[root@hadoop1 ~]# cat /proc/version

Linux version 2.6.32-573.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) ) #1 SMP Thu Jul 23 15:44:03 UTC 2015

 

1-18)、查看CPU的信息

[root@hadoop1 ~]# cat /proc/cpuinfo

processor : 0

vendor_id : GenuineIntel

cpu family : 6

model : 58

model name : Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz

stepping : 9

microcode : 18

cpu MHz : 2394.639

cache size : 3072 KB

physical id : 0

siblings : 1

core id : 0

cpu cores : 1

apicid : 0

initial apicid : 0

fpu : yes

fpu_exception : yes

cpuid level : 13

wp : yes

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c hypervisor lahf_lm arat epb pln pts dts fsgsbase smep

bogomips : 4789.27

clflush size : 64

cache_alignment : 64

address sizes : 42 bits physical, 48 bits virtual

power management:

1-19)、查看本地的磁盘的情况

[root@hadoop1 ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x0008bfe5

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          39      307200   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2              39        2350    18566144   83  Linux

/dev/sda3            2350        2611     2097152   82  Linux swap / Solaris

 

1-20)、查看文件夹下的每个文件的大小

[root@hadoop1 ~]# ll -h

total 64K

-rw-------. 1 root root 3.3K Mar  3  2017 anaconda-ks.cfg

-rw-r--r--. 1 root root  41K Mar  3  2017 install.log

-rw-r--r--. 1 root root 9.0K Mar  3  2017 install.log.syslog

1-21)、查找某个文件下的文件的大小

[root@hadoop1 ~]#  find . -type f -size +800M | xargs ls -lh

-rw-rw-r-- 1 hadoop root 24G Mar  6 08:49 ./data/cities.txt

-rw-rw-r-- 1 hadoop root 18G Mar  6 08:49 ./data/order.txt

-rw-rw-r-- 1 hadoop root 50G Mar  6 10:17 ./data/maxinfo.txt

-rw-rw-r-- 1 hadoop root 19G Mar  6 08:49 ./data/order.txt

-rw-rw-r-- 1 hadoop root 35G Mar  6 10:00 ./data/max.txt

1-22)、yum 常用命令

A)、安装命令

yum install 全部安装

yum install package1 安装指定的安装包package1

yum groupinsall group1 安装程序组group1

B)、更新和升级

yum update 全部更新

yum update package1 更新指定程序包package1

yum check-update 检查可更新的程序

yum upgrade package1 升级指定程序包package1

yum groupupdate group1 升级程序组group1

 

C)、查找和显示

yum info package1 显示安装包信息package1

yum list 显示所有已经安装和可以安装的程序包,使用@标记

yum list package1 显示指定程序包安装情况package1

yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包

D)、删除程序

yum remove | erase package1 删除程序包package1

yum groupremove group1 删除程序组group1

yum deplist package1 查看程序package1依赖情况

E)、清除缓存

yum clean packages 清除缓存目录下的软件包

yum clean headers 清除缓存目录下的 headers

yum clean oldheaders 清除缓存目录下旧的 headers

yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers

F)、重新生成缓存

yum clean all

yum makecache

1-23)、快速杀掉所有的JAVA进程

[root@hadoop1 ~]# pkill  java

[root@hadoop1 ~]# killall  java

Jps | zargs kill -9

1-24)、查看磁盘的IO的性能

[root@hadoop1 ~]# iostat -d -k 2 10

Linux 2.6.32-573.el6.x86_64 (hadoop1.hadoop.com) 05/29/2017 _x86_64_ (1 CPU)

 

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

sda              22.21       534.63        32.45     389710      23656

 

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

sda               0.00         0.00         0.00          0          0

 

-d  : 显示设备(磁盘)使用状态

-m  : 某些使用block为单位的列强制使用Kilobytes为单位

2 : 多少秒刷新一次

10 : 表示一共显示多少次

1-25)、查看当前正在占用的端口的程序

$ lsof -i :18630

chrome   3294 xiaoxu  240u  IPv4 624822      0t0  TCP localhost:33222->xiaoxu:18630 (ESTABLISHED)

chrome   3294 xiaoxu  255u  IPv4 624823      0t0  TCP localhost:33224->xiaoxu:18630 (ESTABLISHED)

java    18253 xiaoxu 2279u  IPv6 616200      0t0  TCP *:18630 (LISTEN)

java    18253 xiaoxu 2293u  IPv6 624657      0t0  TCP xiaoxu:18630->localhost:33222 (ESTABLISHED)

 

************

1-26)、创建软连接

-b:删除覆盖以前的建立的软连接

-d, -F:允许超级用户制作目录的硬链接

-f : 强制执行

-i :交互模式,文存在则提示用户是否覆盖

-n:把符号链接视为一般的链接

-v:显示详细的处理过程

$ ln -s /google/chrome/google-chrome   /usr/bin/

 /google/chrome/google-chrome:源文件的路径

/usr/bin/:目标文件的路径

 

1-27)、10进制转换为16禁止

$ echo 1772 |awk '{printf("%x\n", $0)}'

6ec

 

1-28)、查看网卡是千M还是万M网卡

$ ethtool em1

Settings for em1:

Supported ports: [ FIBRE ]

Supported link modes:   1000baseT/Full

                        10000baseT/Full

Supported pause frame use: Symmetric Receive-only

Supports auto-negotiation: No

Advertised link modes:  10000baseT/Full

Advertised pause frame use: No

Advertised auto-negotiation: No

Speed: 10000Mb/s   (表示万M网卡,如果是1000M则表示千M网卡)

Duplex: Full

Port: FIBRE

PHYAD: 1

Transceiver: internal

Auto-negotiation: off

Cannot get wake-on-lan settings: Operation not permitted

Current message level: 0x00000000 (0)

       

Link detected: yes

1-29)、传送文件命令

  1. 、scp 命令是用

rcp代表“remote file copy”(远程文件拷贝)

 

$ scp -r [email protected]:/root/yarnLog.log ~/softWare/software

B)、rcp命令使用

scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令

 

$ rcp -r [email protected]:/root/yarnLog.log ~/softWare/software

 

1-30)、lsblk命令的使用

在“lsblk”代表( 名单块设备 ),通过在树状时尚标准输出分配给他们的名称(但不是RAM)打印块设备

 

$ lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

sda      8:0    0 465.8G  0 disk

└─sda1   8:1    0 465.8G  0 part /

sdb      8:16   1  14.7G  0 disk

└─sdb1   8:17   1  14.7G  0 part /media/xiaoxu/522D-5D8F

Linux 常用解压软件命令

[root@hadoop1 software]# tar -zxvf  ifstat-1.1.tar.gz

[root@hadoop1 software]# tar xvf spark-1.6.2-bin-hadoop2.6.tgz

[root@hadoop1 software]# unzip Redis-x64-windown.zip

[root@hadoop1 software]# tar -xvf  MySQL-5.6.tar

[root@hadoop1 software]# rpm -ivh  Mysql.rpm

[root@hadoop1 local]# tar -jxvf  mysql.tar.bz2

[root@hadoop1 local]# tar xf  systemd-214.tar.xz

[root@hadoop1 local]# uncompress test_docs.tar.Z

[root@hadoop1 local]# gzip -d kafka.txt.gz

[root@hadoop1 local]# bzip2 -d kafka.txt.bz2

 

Linux 常用的压缩软件命令

[root@hadoop1 local]# tar zcvf  jdk1.7.tar.gz  jdk1.7/

[root@hadoop1 local]# tar -jcvf mysql.tar.bz2  MySQL-server-5.6.rpm

[root@hadoop1 local]# zip kafka.zip kafka

 

Linux 编程

1-1)、基本语法

[root@hadoop1 bash]# vi hello

#!/bin/bash

echo "hello world"

[root@hadoop1 bash]# chmod 777 hello

[root@hadoop1 bash]# ./hello

hello world

[root@hadoop1 bash]# sh hello

hello world

1-2)、常用语法

A)、If语法

if condition 
then 
    statements 
[elif condition 
    then statements. ..] 
[else 
    statements ] 
fi

 

实例:

# 以下测试if判断符号

a=10

b=20

echo "a="$a" b="$b

# 大于字符

if [ $a -gt $b ]

then

echo "a 大于 b"

else

echo "a 小于 b"

fi

 

# 小于字符

if [ $a -lt $b ]

then

echo "a 小于 b"

else

echo "a 大于 b"

fi

 

# 判断两侧是否相等

if [ $a -eq $b ]

then

echo "a 等于b"

else

echo "a 与b 不相等"

fi

 

# 判断左侧是否大于或等于右侧的数值

if [ $a -ge $b ]

then

echo "a 大于或等于b"

else

echo "a 不大于或不等于b"

fi

 

# 判断a的值

if [ $a == 100 ]

then

echo "a 等于100"

elif [ $a == 10 ]

then

echo "a 等于10"

else

echo "a 不等于10"

Fi

 

# 自动生成时间脚本

 

for i in {1..9}

do

theday=`date -d"-$i day" +"%Y%m%d"`

echo "date:" $theday

done

 

B)、While语法

实例一:

while expression

do

command

done

 

实例代码一:

[root@hadoop1 log]# while true

> do

> date >> test.log

> sleep 1

> done;

 

 

实例二:

i=1

while ((i<=3))

do

  echo $i

  let i++   # 对数值进行累加

done

 

C)、Case语法

case $1 in

start)

echo "starting"

;;

stop)

echo "stoping"

;;

*)

echo "Usage: {start|stop}"

esac

 

 

D)、For语法

方式一:

 

for N in 1 2 3

do

echo $N

done

for N in 1 2 3; do echo $N; done

for N in {1..3}; do echo $N; done

 

 

方式二:

for ((i = 0; i <= 5; i++))

do

echo "welcome $i times"

done

for ((i = 0; i <= 5; i++)); do echo "welcome $i times"; done

 

方式三:

for i in "$*"; do

echo  "-----" $i

done

 

for i in "$@"; do

echo "-----@" $i

done

 

 

方式四

for ((i=1;i<=15;i++))

do

if [ $i -gt 5 ] && [ $i -lt 10 ]

then

continue

else

echo $i

fi

done

 

1-3)、函数

A)、函数定义

# func1.sh

hello()    ## 函数定义

{

        echo "Hello there today's date is `date +%Y-%m-%d`"

        # return  2      ###返回值其实是状态码,只能在[0-255]范围内

}       

echo "now going to the function hello"

hello

# echo $?  获取函数的return值

echo "back from the function"

 

 

函数调用:

function hello()  

或 function hello

或 hello

 

 

B)、函数参数

#!/bin/bash

# fun1.sh

 

funWithParam(){

    echo "第一个参数为 $1 !"

    echo "第二个参数为 $2 !"

    echo "第十个参数为 $10 !"

    echo "第十个参数为 ${10} !"

    echo "第十一个参数为 ${11} !"

    echo "参数总数有 $# 个!"

    echo "作为一个字符串输出所有参数 $* !"

}

funWithParam 1 2 3 4 5 6 7 8 9 34 73

 

 

注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数。

 

 

C)、函数返回值

#!/bin/bash

# fun2.sh

funWithReturn(){

    echo "这个函数会对输入的两个数字进行相加运算..."

    echo "输入第一个数字: "

    read aNum

    echo "输入第二个数字: "

    read anotherNum

    echo "两个数字分别为 $aNum 和 $anotherNum !"

    return $(($aNum+$anotherNum))

}

funWithReturn

echo "输入的两个数字之和为 $? !"

 

 

D)、跨脚本调用

 

存在 /root/fun2.sh

可在fun_other.sh中调用apt install htop

#!/bin/bash

# fun_other.sh

. /root/fun2.sh    ## 注:  . 和 / 之间有空格

# 或者 source /root/fun2.sh

funWithParam 11 22 33 44 55 66 77 88 99 100 101

Linux LS命令详解

1-1)、列出文件或者目录

$ ls

dome1  dome.txt  seq1.log  seq.log

1-2)、长清单模式

$ ls -l

总用量 1106500

drwxr-xr-x 2 xiaoxu xiaoxu       4096 12月 15 17:14 dome1

-rw-r--r-- 1 xiaoxu xiaoxu         36 11月 20 15:25 dome.txt

-rw-r--r-- 1 xiaoxu xiaoxu 1123456788 12月 15 17:13 seq1.log

-rw-r--r-- 1 xiaoxu xiaoxu    9581483 12月 15 17:13 seq.log

1-3)、显示文件大小

$ ls -lh

总用量 1.1G

drwxr-xr-x 2 xiaoxu xiaoxu 4.0K 12月 15 17:14 dome1

-rw-r--r-- 1 xiaoxu xiaoxu   36 11月 20 15:25 dome.txt

-rw-r--r-- 1 xiaoxu xiaoxu 1.1G 12月 15 17:13 seq1.log

-rw-r--r-- 1 xiaoxu xiaoxu 9.2M 12月 15 17:13 seq.log

 

$  ls -si

总用量 1106500

17963573       4 dome1  17306566       4 dome.txt  17301593 1097132 seq1.log  17301692    9360 seq.log

1-4)、排序文件大小

$  ls -lhS

总用量 1.1G

-rw-r--r-- 1 xiaoxu xiaoxu 1.1G 12月 15 17:13 seq1.log

-rw-r--r-- 1 xiaoxu xiaoxu 9.2M 12月 15 17:13 seq.log

drwxr-xr-x 2 xiaoxu xiaoxu 4.0K 12月 15 17:14 dome1

-rw-r--r-- 1 xiaoxu xiaoxu   36 11月 20 15:25 dome.txt

1-5)、以M为单位显示文件的大小

$ ls -l --block-size=M

总用量 1081M

drwxr-xr-x 2 xiaoxu xiaoxu    1M 12月 15 17:14 dome1

-rw-r--r-- 1 xiaoxu xiaoxu    1M 11月 20 15:25 dome.txt

-rw-r--r-- 1 xiaoxu xiaoxu 1072M 12月 15 17:13 seq1.log

-rw-r--r-- 1 xiaoxu xiaoxu   10M 12月 15 17:13 seq.log

1-6)、查看隐藏文件

$ ls -a

.  ..  dome1  dome.txt  seq1.log  seq.log

1-7)、只差看当前目录下的文件夹

$ ls -d */

dome1/

1-8)、不打印所有者信息

$ ls -g

总用量 1106500

drwxr-xr-x 2 xiaoxu       4096 12月 15 17:14 dome1

-rw-r--r-- 1 xiaoxu         36 11月 20 15:25 dome.txt

-rw-r--r-- 1 xiaoxu 1123456788 12月 15 17:13 seq1.log

-rw-r--r-- 1 xiaoxu    9581483 12月 15 17:13 seq.log

1-9)、不打印组信息

$ ls -lG

总用量 1106500

drwxr-xr-x 2 xiaoxu       4096 12月 15 17:14 dome1

-rw-r--r-- 1 xiaoxu         36 11月 20 15:25 dome.txt

-rw-r--r-- 1 xiaoxu 1123456788 12月 15 17:13 seq1.log

-rw-r--r-- 1 xiaoxu    9581483 12月 15 17:13 seq.log

1-10)、打印UID和GID

$ ls -n

总用量 1106500

drwxr-xr-x 2 1000 1000       4096 12月 15 17:14 dome1

-rw-r--r-- 1 1000 1000         36 11月 20 15:25 dome.txt

-rw-r--r-- 1 1000 1000 1123456788 12月 15 17:13 seq1.log

-rw-r--r-- 1 1000 1000    9581483 12月 15 17:13 seq.log

1-11)、不带颜色打印

$ ls --color=never

dome1  dome.txt  seq1.log  seq.log

1-12)、打印每个文件的索引号

$ ls -li

总用量 1106500

17963573 drwxr-xr-x 2 xiaoxu xiaoxu       4096 12月 15 17:14 dome1

17306566 -rw-r--r-- 1 xiaoxu xiaoxu         36 11月 20 15:25 dome.txt

17301593 -rw-r--r-- 1 xiaoxu xiaoxu 1123456788 12月 15 17:13 seq1.log

17301692 -rw-r--r-- 1 xiaoxu xiaoxu    9581483 12月 15 17:13 seq.log

1-13)、增加 / (斜线) 标记目录

$ ls -p

dome1/  dome.txt  seq1.log  seq.log

 

1-14)、排序时反转顺序

$ ls -r

seq.log  seq1.log  dome.txt  dome1

1-15)、递归列出子目录

$ ls -R

.:

dome1  dome.txt  seq1.log  seq.log

 

./dome1:

seq.log

1-16)、扩展名排序

$ ls --sort=extension

dome1  seq1.log  seq.log  dome.txt

 

$ ls -lX

总用量 1106500

drwxr-xr-x 2 xiaoxu xiaoxu       4096 12月 15 17:14 dome1

-rw-r--r-- 1 xiaoxu xiaoxu 1123456788 12月 15 17:13 seq1.log

-rw-r--r-- 1 xiaoxu xiaoxu    9581483 12月 15 17:13 seq.log

-rw-r--r-- 1 xiaoxu xiaoxu         36 11月 20 15:25 dome.txt

1-17)、通过修改时间列出

$  ls -lt

总用量 1106500

drwxr-xr-x 2 xiaoxu xiaoxu       4096 12月 15 17:14 dome1

-rw-r--r-- 1 xiaoxu xiaoxu 1123456788 12月 15 17:13 seq1.log

-rw-r--r-- 1 xiaoxu xiaoxu    9581483 12月 15 17:13 seq.log

-rw-r--r-- 1 xiaoxu xiaoxu         36 11月 20 15:25 dome.txt

1-18)、列出你的主目录

$ ls ~

*********

1-19)、查看LS的版本

$ ls --version

ls (GNU coreutils) 8.26

Copyright (C) 2016 Free Software Foundation, Inc.

Linux awk命令详解

1-1)、基本语法

[root@hadoop1 /]# awk ‘pattern + action’  {filename}

A)、书写格式

命令行模式

 [root@hadoop1 /]# awk -F":" '{print $1}' /etc/passwd

 

文本模式

[root@hadoop1 /]# vi testAwk.sh

#!/usr/bin/awk

BEGIN{FS=”:”}

{print $1}

 

B)、变量

常用内置变量

 

$0   当前所有的字段

$0 - $n  系统的内置变量,当前第n个字段

NF   输入来记录的分隔符(默认的是空格)

NR   行号

FS : field separator,读取文件本时,所使用字段分隔符

RS : Record separator,输入文本信息所使用的换行符

OFS : Output Filed Separator,文件分隔符

ORS:Output Row Separator,行分隔符

 

外置变量

awk -v n="test" 'BEGIN{print n}'

- v :传参的参数

C)、操作符

关系操作符:<  , > , <= , >= , == , != , ~ , !~

 

~  :  表示匹配的意思

!~ : 表示不匹配的意思

例如:[root@hadoop1 /]# awk -F":" '$7 ~ /^\/bin/{print $0}' /etc/passwd

      [root@hadoop1 /]# awk -F":" '$7 !~ /^\/bin/{print $0}' /etc/passwd

 

布尔操作符:&& , || , !

 

D)、 print与printf的区别

print : 直接输出变量值或给定的字符串

Printf: 可以实现格式化输出

 

[root@hadoop1 /]# awk -F":" '{printf($1,$2)}' /etc/passwd

 

1-2)、awk 流程控制

A)、条件

实例一

[root@hadoop1 /]#awk -F":" '{if($NF=="/bin/bash"){print $0}}' /etc/passwdno

pk

No

***********

实例二

[root@hadoop1 /]#awk -F":" '{if($NF=="/bin/bash"){print $0}}' /etc/passwd

$NF :是表示最后一个单词的记录

 

B)、while语句

实例一

[root@hadoop1 /]#awk -F":" '{i=1;while(i<=NF){print(i,$i);i++}{print " "}}' /etc/passwd

 

实例二

[root@hadoop1 /]# awk -F":" '{for(i=1;i<=NF;i++){print(i,$i)}{print " "}}' /etc/passwd

 

C)、数组

[root@hadoop1 /]#awk -F":" '{a[$NF]++}END{for(i in a){print i":"a[i]}}' /etc/passwd

 

1-3)、函数

A)、算数函数

int(x) : 返回X的整数部分的值

sqrt(x) : 返回x的平方根

rand() : 返回伪随机数r,其中0<=r<1

srand : 建立rand()新的种子数,如果没有制定就用当天的时间

 

B)、算数函数

sub(),gsub() : 替换函数

Index(s,t) : 返回子串t在字符串s中的位置,如果没有则返回0

length(s) : 返回字符串长度,当没有给出s时,返回$0的长度

match(s,a,seq) : 使用seq将字符串s分解到数组a中,默认seq伪FS

sub(),gsub() : 替换函数

Index(s,t) : 返回子串t在字符串s中的位置,如果没有则返回0

length(s) : 返回字符串长度,当没有给出s时,返回$0的长度

match(s,a,seq) : 使用seq将字符串s分解到数组a中,默认seq伪FS

C)、自定义函数

[root@hadoop1 /]# awk 'function sum(n,m){total=n+m;return total}BEGIN{print sum(5,8)}'

13

1-4)、awk 实战

  1. 、获取IP地址

[root@hadoop1 /]#  ifconfig wlp3s0 | grep -w "inet" | awk '{print $2}'

192.168.199.137

 

B)、查找制定字段的运行时间

[root@hadoop1 /]# ps -ef|grep java | awk '{print $7}'

00:00:00

C)、对每一个分隔符添加相对应的字符

[root@hadoop1 /]# nl passwd | awk -F":" '{print $1 "*****" $7}'| head -n 5

     1 root*****/bin/bash

     2 daemon*****/usr/sbin/nologin

     3 bin*****/usr/sbin/nologin

     4 sys*****/usr/sbin/nologin

     5 sync*****/bin/sync

 

[root@hadoop1 /]# $ nl passwd | awk 'BEGIN{FS=":";OFS="****"}{print $1,$7}' | head -n 5

     1 root****/bin/bash

     2 daemon****/usr/sbin/nologin

     3 bin****/usr/sbin/nologin

     4 sys****/usr/sbin/nologin

     5 sync****/bin/sync

 

记录当前的field个数

$ nl passwd | awk 'BEGIN{FS=":";OFS="****"}{print $1,$7,NF}' | head -n 5

     1 root****/bin/bash****7

     2 daemon****/usr/sbin/nologin****7

     3 bin****/usr/sbin/nologin****7

     4 sys****/usr/sbin/nologin****7

     5 sync****/bin/sync****7

Linux sort 命令详解

-f  :忽略大小写的差异,例如 A 与 a 视为编码相同;

-b  :忽略最前面的空格符部分;

-M  :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;

-n  :使用『纯数字』进行排序(默认是以文字型态来排序的);

-r  :反向排序;

-u  :就是 uniq ,相同的数据中,仅出现一行代表;

-t  :分隔符,默认是用 [tab] 键来分隔;

-k  :以那个区间 (field) 来进行排序的意思

-o  :    对数据进行重定向

 

1-1)、准备数据

[root@hadoop1 /]# vi test.log

aa 1

bb 3

cc 2

ab 4

ba 1

de 2

ef 6

dfd 7

 

1-2)、对数据进行排序

[root@hadoop1 /]# vi  source.log

google:110:5000

baidu:100:5000

guge:50:3000

sohu:100:4500

 

A)、对数据进行正序排序

[root@hadoop1 /]#  sort source.log

baidu:100:5000

google:110:5000

guge:50:3000

sohu:100:4500

默认的是按照第一个单词进行排序

B)、对数据进行倒叙排序

[root@hadoop1 /]#  sort -r source.log

sohu:100:4500

guge:50:3000

google:110:5000

baidu:100:5000

C)、对数据去重

[root@hadoop1 /]# sort -u source.log

baidu:100:5000

google:110:5000

guge:50:3000

sohu:100:4500

D)、把排序完的数据进行重新保存

[root@hadoop1 /]# sort  source.log  -o source.log

root@hadoop1 /]# cat source.log

baidu:100:5000

google:110:5000

guge:50:3000

sohu:100:4500

 

-o 参数不会对之前的数据进行清空

 

E)、按照第一个字段排序

[root@hadoop1 /]#  sort  -t ':' -k 1 source.log

baidu:100:5000

google:110:5000

guge:50:3000

sohu:100:4500

 

-t :表示分隔符

-k :  标志制定那个字段进行排序

F)、按照多个字段排序

[root@hadoop1 /] #  sort -n  -t ':' -k 2 -k 3 source.log

guge:50:3000

sohu:100:4500

baidu:100:5000

google:110:5000

 

-n : 是按照数字排序

 

G)、第三个字段按照降序排序

[root@hadoop1 /] #  sort -n  -t ':' -k 2 -k 3r  source.log

guge:50:3000

baidu:100:5000

sohu:100:4500

google:110:5000

-k 3r :表示降序排序

 

 

或者这样写

sort -t ':' -k 2n -k 3nr source.log

guge:50:3000

baidu:100:5000

sohu:100:4500

google:110:5000

H)、按照第一个单词第二个字母排序

[root@hadoop1 /] #sort -t ':' -k 1.2  source.log

baidu:100:5000

sohu:100:4500

google:110:5000

guge:50:3000

 

Linux sed 详解

1-1)、参数详解

-n : 读取下一行到模式空间,安静的模式

-N : 追加下一行到模式空间

:a : 定义标签a

ba:返回标签a

ta :如果执行成功则返回标签a

Ta:如果执行不成功则返回a

-e : 直接在命令列模式上进行sed的动作操作

-f : 直接将sed的动作写在一个文件内

-i:直接修改读取文件中的内容,而不是输出到终端

p :列印,亦即将某个选择的数据印出

a :新增

c :取代

d :删除

i :插入

s :取代

1-2)、实例详解

准备数据

复制一份passwd数据到桌面

A)、复制数据的前一行

$ nl passwd |sed '1p'

1 root:x:0:0:root:/root:/bin/bash

1 root:x:0:0:root:/root:/bin/bash

2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

××××××××××××××××××××××××

B)、删除制定的行

$ nl passwd |sed '1d'

2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

3 bin:x:2:2:bin:/bin:/usr/sbin/nologin

4 sys:x:3:3:sys:/dev:/usr/sbin/nologin

××××××××××××××××××××××××

 

C)、显示第一行到第二行

$ nl passwd |sed -n '1,2p'

1 root:x:0:0:root:/root:/bin/bash

2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

 

只显示第三行

$ nl passwd |  sed -n '3p'

3 bin:x:2:2:bin:/bin:/usr/sbin/nologin

D)、在第二行后面添加一行信息

$ nl passwd |sed '2a add print .....'

1 root:x:0:0:root:/root:/bin/bash

2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

add print .....

3 bin:x:2:2:bin:/bin:/usr/sbin/nologin

 

E)、删除地2行到第五行,病替换成相对应的字符

$ nl passwd |sed '2,5c add string .....'

1 root:x:0:0:root:/root:/bin/bash

add string .....

6 games:x:5:60:games:/usr/games:/usr/sbin/nologin

F)、搜索信息做操作

所有出来并显示

$ nl passwd |sed -n '/daemon/p'

2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

29 avahi-autoipd:x:110:115:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false

30 usbmux:x:111:46:usbmux daemon,,,:/var/lib/usbmux:/bin/false

 

搜索出来直接删除

$ nl passwd |sed -n '/daemon/d'

Awk

搜索出来病执行替换,q只结束符

$ nl passwd |sed '/daemon/{s/daemon/blueshell/;q}'

1 root:x:0:0:root:/root:/bin/bash

2 blueshell:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

G)、获取本地的IP

$ ifconfig wlp3s0|sed -n '/netmask/p' | awk -F" " '{print $2}'

192.168.199.137

H)、把文件转换为unix编码

$ sudo sed -n 's/^M//'  passwd

Linux grep 命令详解

1-1)、使用帮助

$ grep --help

正则表达式选择与解释:

  -E, --extended-regexp        PATTERN 是一个可扩展的正则表达式(缩写为 ERE)

  -F, --fixed-strings             PATTERN 是一组由断行符分隔的字符串。

  -G, --basic-regexp            PATTERN 是一个基本正则表达式(缩写为 BRE)

  -P, --perl-regexp             PATTERN 是一个 Perl 正则表达式

  -e, --regexp=PATTERN        用 PATTERN 来进行匹配操作

  -f, --file=FILE               从 FILE 中取得 PATTERN

  -i, --ignore-case             忽略大小写

  -w, --word-regexp           强制 PATTERN 仅完全匹配字词

  -x, --line-regexp             强制 PATTERN 仅完全匹配一行

  -z, --null-data               一个 0 字节的数据行,但不是空行

 

杂项:

  -s, --no-messages            不显示错误信息

  -v, --invert-match            选中不匹配的行

  -V, --version                 显示版本信息并退出

      --help                  显示此帮助并退出

 

输出控制:

  -m, --max-count=NUM         NUM 次匹配后停止

  -b, --byte-offset              输出的同时打印字节偏移

  -n, --line-number              输出的同时打印行号

      --line-buffered            每行输出清空

  -H, --with-filename             为每一匹配项打印文件名

  -h, --no-filename               输出时不显示文件名前缀

      --label=LABEL              将LABEL 作为标准输入文件名前缀

  -o, --only-matching             只显示匹配PATTERN 部分的行

  -q, --quiet, --silent              不显示所有常规输出

      --binary-files=TYPE         设定二进制文件的TYPE 类型;

                               TYPE 可以是`binary', `text', 或`without-match'

  -a, --text                      等同于 --binary-files=text

  -I                            等同于 --binary-files=without-match

  -d, --directories=ACTION         读取目录的方式;

                               ACTION 可以是`read', `recurse',或`skip'

  -D, --devices=ACTION            读取设备、先入先出队列、套接字的方式;

                                ACTION 可以是`read'或`skip'

  -r, --recursive                   等同于--directories=recurse

  -R, --dereference-recursive        同上,但遍历所有符号链接

      --include=FILE_PATTERN      只查找匹配FILE_PATTERN 的文件

      --exclude=FILE_PATTERN      跳过匹配FILE_PATTERN 的文件和目录

      --exclude-from=FILE          跳过所有除FILE 以外的文件

      --exclude-dir=PATTERN        跳过所有匹配PATTERN 的目录。

  -L, --files-without-match           只打印不匹配FILEs 的文件名

  -l, --files-with-matches            只打印匹配FILES 的文件名

  -c, --count                       只打印每个FILE 中的匹配行数目

  -T, --initial-tab                    行首tabs 分隔(如有必要)

  -Z, --null                         在FILE 文件最后打印空字符

 

文件控制:

  -B, --before-context=NUM          打印文本及其前面NUM 行

  -A, --after-context=NUM           打印文本及其后面NUM 行

  -C, --context=NUM                打印NUM 行输出文本

  -NUM                          等同于 --context=NUM

      --color[=WHEN],

      --colour[=WHEN]              使用标记高亮匹配字串;

                                  WHEN 可以是`always', `never'或`auto'

  -U, --binary                       不要清除行尾的CR 字符(MSDOS/Windows)

  -u, --unix-byte-offsets              忽略CR 字符,报告字节偏移

     (MSDOS/Windows)

1-2)、使用实例

A)、查找含有root关键字的信息

区分大小写

$ grep "root" passwd

root:x:0:0:root:/root:/bin/bash

nm-openvpn:x:117:124:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/bin/false

 

不区分大小写

$ grep -i "root" passwd

root:x:0:0:root:/root:/bin/bash

nm-openvpn:x:117:124:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/bin/false

ROOT:x:0:0:ROOT:/ROOT:/bin/bash

B)、过滤二进制

$ grep -a -i "root" passwd

root:x:0:0:root:/root:/bin/bash

nm-openvpn:x:117:124:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/bin/false

ROOT:x:0:0:ROOT:/ROOT:/bin/bash

 

-a : 是过滤二进制的

C)、按照多个条件查找

$ grep -a -i -E "root|bash" passwd

root:x:0:0:root:/root:/bin/bash

nm-openvpn:x:117:124:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/bin/false

xiaoxu:x:1000:1000:xiaoxu,,,:/home/xiaoxu:/bin/bash

ROOT:x:0:0:ROOT:/ROOT:/bin/bash

 

-E :可以过滤多个条件,中间以|分割

D)、显示匹配的行数

$ grep -a -i -E -c "root|bash" passwd

4

$ grep -a -i -E "root|bash" passwd | wc -l

4

E)、显示匹配的行数

$ grep -a -i -E -n  "root|bash" passwd

1:root:x:0:0:root:/root:/bin/bash

36:nm-openvpn:x:117:124:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/bin/false

42:xiaoxu:x:1000:1000:xiaoxu,,,:/home/xiaoxu:/bin/bash

45:ROOT:x:0:0:ROOT:/ROOT:/bin/bash

F)、递归查询文件夹下的所有的文件的匹配信息

$ grep "root" -r -n nmon/

nmon/:8:AAA,user,root

nmon/71:BBBP,035,fdisk-l,"Disk /dev/mapper/ubuntu--vg-root: 457.8 GiB, 491509514240 bytes, 959979520 sectors"

nmon/:723:BBBP,687,/dev/mapper,"crw------- 1 root root 10, 236 8月  14 22:46 control"

 

G)、显示匹配当前行数的前几行或后几行

显示当前匹配的后三行

$ seq 10 |grep "5" -A 3

5

6

7

8

 

显示当前匹配的前三行

$ seq 10 |grep "5" -B  3

2

3

4

5

 

显示当前匹配的前后三行

$ seq 10 |grep "5" -C  3

2

3

4

5

6

7

8

1-3)、查找家目录下的jpg文件

# find ~ -name '*jpg'

1-4)、按照首字母大写来查找文件

# find ~ -iname '*jpg'

1-5)、查找后缀是jpeg或jpg的文件

# find ~ ( -iname '*jpeg' -o -iname '*jpg' )

1-6)、查找后缀是jpeg或jpg的目录

#  find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f

1-7)、查找一周之前的文件

#  find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7

1-8)、在/var/log下查找大于1G的文件

#  find /var/log -size +1G

 

Linux netstart命令详解

1-1)、参数详解

-r, --route              显示路由表

 -i, --interfaces         display interface table

-g, --groups             display multicast group memberships

-s, --statistics         display networking statistics (like SNMP)

-M, --masquerade         display masqueraded connections

 

-v, --verbose            显示详细信息

-W, --wide               don't truncate IP addresses

-n, --numeric            不解析名称

--numeric-hosts          不解析主机名

--numeric-ports          忽略端口名称

--numeric-users          忽略用户名

-N, --symbolic           resolve hardware names

-e, --extend             显示更多信息

-p, --programs           display PID/Program name for sockets

-o, --timers             display timers

-c, --continuous         continuous listing

 

-l, --listening          display listening server sockets

-a, --all                display all sockets (default: connected)

-F, --fib                display Forwarding Information Base (default)

-C, --cache              display routing cache instead of FIB

-Z, --context            display SELinux security context for sockets

 

1-2)、查看所有的打开的端口

$ netstat -a|head -n 5

Proto Recv-Q Send-Q Local Address           Foreign Address         State      

tcp        0      0 localhost:mysql         0.0.0.0:*               LISTEN     

tcp        0      0 0.0.0.0:hostmon         0.0.0.0:*               LISTEN     

tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN

*************

 

1-3)、列出所有tcp端口

$ netstat -at|head

Proto Recv-Q Send-Q Local Address           Foreign Address         State      

tcp        0      0 localhost:mysql         0.0.0.0:*               LISTEN     

tcp        0      0 0.0.0.0:hostmon         0.0.0.0:*               LISTEN     

tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     

tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN

*************

1-4)、列出所有udp的端口

$ netstat -au|head

Proto Recv-Q Send-Q Local Address           Foreign Address         State      

udp        0      0 0.0.0.0:46997           0.0.0.0:*                          

udp        0      0 localhost:domain        0.0.0.0:*                          

udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          

***********************

 

1-5)、列出所有的监听端口

$ netstat -l|head

Proto Recv-Q Send-Q Local Address           Foreign Address         State      

tcp        0      0 localhost:mysql         0.0.0.0:*               LISTEN     

tcp        0      0 0.0.0.0:hostmon         0.0.0.0:*               LISTEN     

tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     

tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN     

tcp6       0      0 [::]:hostmon            [::]:*                  LISTEN

 

1-6)、常用带参数命令

$netstat -lt : 列出所有
$netstat -lt 列出所有监听 tcp 端口

$netstat -lu 列出所有监听 udp 端口

$netstat -lx 列出所有监听 UNIX 端口

$netstat -s 显示所有端口

$netstat -st 显示TCP的端口

$netstat -su 显示UDP的端口

1-7)、按照端口查找程序相关的信息

$ sudo netstat -nltp|grep 22

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1312/sshd           

tcp6       0      0 :::22                   :::*                    LISTEN      1312/sshd

 

Linux 配置yum源

搜狐yum源:

http://mirrors.sohu.com/help/centos.html

 

中科大源:

https://lug.ustc.edu.cn/wiki/mirrors/help/centos

 

163 yum源:

http://mirrors.163.com/.help/CentOS5-Base-163.repo

http://mirrors.163.com/.help/CentOS6-Base-163.repo

 

Linux 常用设置

1-1)、设置系统开启级别

[root@hadoop1 /]# cat /etc/inittab

***************

# Default runlevel. The runlevels used are:

#   0 - halt (Do NOT set initdefault to this)   

#   1 - Single user mode

#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#   3 - Full multiuser mode

#   4 - unused

#   5 - X11

#   6 - reboot (Do NOT set initdefault to this)

#

id:5:initdefault:

 

0-halt 关机,让init关闭所有进程并关机

1-Single user mode 单用户字符界面,通常又称为s或S

2-Multiuser,without NFS 不具备网络文件系统功能的多用户字符界面

3-Full multiuser mode 具备网络文件系统功能的多用户字符界面

4-unused 保留不用

5-X11 具备网络功能的图形用户界面

6-reboot 关闭所有运行的进程并重新启动系统

 

启动后进入图形界面,设为3则进入具备网络文件系统功能的多用户字符界面

Linux常用软件安装

[root@hadoop1 opt]# yum -y install gcc make gcc-c++ openssl-devel  flex byacc  libpcap ncurses ncurses-devel  libpcap-devel

1-1)、JDK安装

[root@hadoop1 nginx]# tar -zxvf jdk-7u80-linux-x64.tar.gz  -C /usr/local/

[root@hadoop1 /]# vi /etc/profile

export JAVA_HOME=/home/jdk1.7

 

-C  是把文件解压到某个目录下

 

安装前请先把系统默认的安装包卸载掉:

[root@hadoop1 bin]# rpm -qa | grep jdk

[root@hadoop1 bin]# yum -y remove java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64

 

如果遇到Java -version还是系统的配置,请执行以下操作:

[root@hadoop1 bin]#  echo $JAVA_HOME

[root@hadoop1 bin]#   which java

[root@hadoop1 bin]#  mv /usr/bin/java /usr/bin/java_bak

[root@hadoop1 bin]# source /etc/profile

1-2)、安装tomcat

[root@hadoop3 local]# tar -zxvf apache-tomcat-7.0.69.tar.gz

[root@hadoop3 /]# vi /etc/profile

export  TOMCAT_HOME=/usr/local/apache-tomcat-7.0.69

 

[root@hadoop3 /]# source  /etc/profile

1-3)、安装nginx

[root@hadoop1 nginx]# tar -zxvf nginx-1.8.1.tar.gz -C /usr/local/

export  NGINX_HOME=/usr/local/nginx/sbin

1-4)、安装MySQL

1-1)、在线安装MySql

[root@hadoop1 ~]# yum list|grep mysql

Error: Cannot find a valid baseurl for repo: extras

这个问题可能是DNS没有配置好,建议重新配置DNS

vi /etc/resolv.conf

 

查看是否有rum命令

[root@hadoop1 ~]# rum remove mysql-libs

-bash: rum: command not found

 

搜索rum软件并安装

[root@hadoop1 ~]# yum list|grep rum

oniguruma.i686                             5.9.1-3.1.el6                 base   

oniguruma.x86_64                           5.9.1-3.1.el6                 base   

oniguruma-devel.i686                       5.9.1-3.1.el6                 base   

oniguruma-devel.x86_64                     5.9.1-3.1.el6                 base   

smc-suruma-fonts.noarch                    04.2-11.el6                   base   

[root@hadoop1 ~]# yum install oniguruma.x86_64

 

安装mysql

service mysqld stop

yum remove mysql mysql-*

yum list installed | grep mysql

rpm -e --nodeps `rpm -qa | grep mysql`

rpm -Uvh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm

yum install mysql-community-server

mysql -V

service mysqld start

 

登录mysql密码为空,直接回车

[root@hadoop1 /]# mysql -uroot -p

 

1-2)、离线安装MySql

安装下载:链接:http://pan.baidu.com/s/1jIiD3FK 密码:7kwf  或者登陆http://mirrors.sohu.com/mysql/网站下载。  如果无法下载请联系作者。

 

  1. 、下载并解压

查看本地的mysql安装包并删除

[root@hadoop1 ~]# yum list|grep mysql*

[root@hadoop1 ~]# yum remove mysql* mysql-*

[root@hadoop1 ~]# yum remove mysq-libs

 

查看正在使用的内核的版本

[root@hadoop1 ~]# uname -r

2.6.32-431.el6.x86_64

 

在线下载mysql5.7安装包

[root@hadoop1 opt]# wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-1.el6.i686.rpm-bundle.tar

 

[root@hadoop1 opt]# chmod a+x mysql-5.7.17-1.el6.i686.rpm-bundle.tar

[root@hadoop1 opt]# tar xvf mysql-5.7.17-1.el6.i686.rpm-bundle.tar

 

赋给执行的权限

[root@hadoop1 opt]# chmod a+x *.rpm

 

安装mysql需要的包

[root@hadoop1 opt]# yum localinstall mysql-community-common-5.7.17-1.el6.i686.rpm

[root@hadoop1 opt]# yum localinstall mysql-community-libs-5.7.17-1.el6.i686.rpm

 

安装客户端

[root@hadoop1 opt]# yum localinstall mysql-community-client-5.7.17-1.el6.i686.rpm

 

安装服务端

[root@hadoop1 opt]# yum localinstall mysql-community-server-5.7.17-1.el6.i686.rpm

 

查看版本

[root@hadoop1 opt]# mysql -V

mysql  Ver 14.14 Distrib 5.7.17, for Linux (i686) using  EditLine wrapper

 

初始化表

[root@hadoop1 opt]# mysqld -initialize

 

查看初始的密码

[root@hadoop1 opt]# grep 'temporary password' /var/log/mysqld.log

2017-01-07T04:02:51.271722Z 1 [Note] A temporary password is generated for root@localhost: eqgF_AdFI4Wa

 

启动mysql

[root@hadoop1 opt]# service mysqld start

 

登陆mysql

[root@hadoop1 opt]# mysql -uroot -p

// 校验密码的强度。5.7要求用户的密码为复杂。

mysql> set global validate_password_policy=0;

mysql> SET PASSWORD = PASSWORD('123abc,.');

mysql> FLUSH PRIVILEGES;

1-3)、MySql常用操作

A)、权限操作

开启mysql的远程登录权限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

 

刷新使之立刻生效

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

mysql>grant select,insert,update,delete,create,drop on vtdc.employee to ‘joe@hadoop1’ identified by 'bigdata';

给来自hadoop1的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为bigdata。

 

mysql>grant all privileges on vtdc.* to ‘joe@hadoop1’  identified by 'bigdata';

给来自hadoop1的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为bigdata。

 

mysql>grant all privileges on *.* to  ‘joe@hadoop1’  identified by 'bigdata';

给来自hadoop1的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为bigdata。

 

mysql>grant all privileges on *.* to  ‘joe@localhost’  identified by 'bigdata';

给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为bigdata。

 

B)、修改Mysql密码

修改mysql密码

[root@hadoop1 conf]# mysql -uroot -p

mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

 

mysql> update user set password=password("123456") where user='root';

Query OK, 5 rows affected (0.01 sec)

Rows matched: 5  Changed: 5  Warnings: 0

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

C)、加载数据

1-1)、Source加载

mysql> source /user.test.sql

Query OK, 0 rows affected (0.00 sec)

1-2)、命令行加载

[root@hadoop2 open-falcon]# mysql -uroot -p123456 <scripts-master/db_schema/graph-db-schema.sql

Warning: Using a password on the command line interface can be insecure.

 

有警告提示,可以忽略,提示密码暴露在外部

1-3)、直接把数据加载到指定的数据库中

 

[root@hadoop2 sql]# mysql -uroot -p123456  lepus < lepus_table.sql

Warning: Using a password on the command line interface can be insecure.

 

[root@hadoop2 sql]# mysql -uroot -p123456  lepus < lepus_data.sql

Warning: Using a password on the command line interface can be insecure.

 

有警告提示,可以忽略,其中lepus 是数据库,lepus_table.sql是表的信息,lepus_data.sql 是表的数据,具体的可以查看:

http://blog.csdn.net/xfg0218/article/details/53207932

http://blog.csdn.net/xfg0218/article/details/53207908

 

D)、增加用户

1-1)、增加用户

用户名是:lepus

密码是:lepus

 

mysql> insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values('localhost','lepus',password('lepus'),'BLOB','BLOB','BLOB');

Query OK, 1 row affected (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

1-2)、权限操作

mysql> GRANT ALL PRIVILEGES ON *.* TO 'lepus'@'%' IDENTIFIED BY 'lepus' WITH GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

授权模板

mysql> CREATE DATABASE {db-name} DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

 

mysql> GRANT ALL PRIVILEGES ON {db-name}.* TO '{db-user}'@'%' IDENTIFIED BY '{password}';

 

mysql> GRANT ALL PRIVILEGES ON {db-name}.* TO '{db-user}'@'localhost' IDENTIFIED BY '{password}';

mysql> flush privileges;

 

E)、设置开机自动启动

[root@hadoop2 redis]# chkconfig mysqld on

F)、Linux远程连接Mysql

[root@localhost etc]# mysql  -ulepus  -h 192.168.215.154  -p

Enter password:

 

-u 需要链接的username

-h 需要链接的IP

-p 登录密码

G)、查看mysql的端口

mysql>  show global variables like 'port';  

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| port        | 3306  |

+---------------+-------+

1 row in set (0.01 sec)

 

1-4)、关于mysql的查询缓存

A)、查询缓存变量

mysql> show global status like 'qcache%';  

+-------------------------+-----------+  

| Variable_name | Value |  

+-------------------------+-----------+  

| Qcache_free_blocks | 22756 |  

| Qcache_free_memory | 76764704 |  

| Qcache_hits | 213028692 |  

| Qcache_inserts | 208894227 |  

| Qcache_lowmem_prunes | 4010916 |  

| Qcache_not_cached | 13385031 |  

| Qcache_queries_in_cache | 43560 |  

| Qcache_total_blocks | 111212 |  

+-------------------------+-----------+

MySQL查询缓存变量解释:

Qcache_free_blocks:缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE会对缓存中的碎片进行整理,从而得到一个空闲块。

Qcache_free_memory:缓存中的空闲内存。

Qcache_hits:每次查询在缓存中命中时就增大

Qcache_inserts:每次插入一个查询时就增大。命中次数除以插入次数就是不中比率。

Qcache_lowmem_prunes:缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个数字在不断增长,就表示可能碎片非常严重,或者内存很少。(上面的 free_blocks和free_memory可以告诉您属于哪种情况)

Qcache_not_cached:不适合进行MySQL查询缓存变量,通常是由于这些查询不是 SELECT 语句或者用了now()之类的函数。

Qcache_queries_in_cache:当前缓存的查询(和响应)的数量。

Qcache_total_blocks:缓存中块的数量。

我们再查询一下服务器关于query_cache的配置:

B)、查询缓存碎片

mysql> show variables like 'query_cache%';  

+------------------------------+-----------+  

| Variable_name | Value |  

+------------------------------+-----------+  

| query_cache_limit | 2097152 |  

| query_cache_min_res_unit | 4096 |  

| query_cache_size | 203423744 |  

| query_cache_type | ON |  

| query_cache_wlock_invalidate | OFF |  

+------------------------------+-----------+

各字段的解释:

query_cache_limit:超过此大小的查询将不缓存

query_cache_min_res_unit:缓存块的最小大小

query_cache_size:查询缓存大小

query_cache_type:缓存类型,决定缓存什么样的查询,示例中表示不缓存 select sql_no_cache 查询

query_cache_wlock_invalidate:当有其他客户端正在对MyISAM表进行写操作时,如果查询在query cache中,是否返回cache结果还是等写操作完成再读表获取结果。

query_cache_min_res_unit的配置是一柄”双刃剑”,默认是4KB,设置值大对大数据查询有好处,但如果你的查询都是小数据查询,就容易造成内存碎片和浪费。

查询缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100%

如果查询缓存碎片率超过20%,可以用FLUSH QUERY CACHE整理缓存碎片,或者试试减小query_cache_min_res_unit,如果你的查询都是小数据量的话。

查询缓存利用率 = (query_cache_size - Qcache_free_memory) / query_cache_size * 100%

查询缓存利用率在25%以下的话说明query_cache_size设置的过大,可适当减小;查询缓存利用率在80%以上而且Qcache_lowmem_prunes > 50的话说明query_cache_size可能有点小,要不就是碎片太多。

查询缓存命中率 = (Qcache_hits - Qcache_inserts) / Qcache_hits * 100%

示例服务器 查询缓存碎片率 = 20.46%,查询缓存利用率 = 62.26%,查询缓存命中率 = 1.94%,命中率很差,可能写操作比较频繁吧,而且可能有些碎片。

1-5)、mysql服务常用操作

启动:service mysqld start

停止:service mysqld stop

重启:service mysqld restart

重载配置:service mysqld reload

1-5)、流量查看软件

软件下载:链接:http://pan.baidu.com/s/1hsiDcvq 密码:et9y 如果无法下载请联系作者。

A)、安装

[root@hadoop1 ifstat-1.1]# chmod a+x ifstat-1.1.tar.gz

[root@hadoop1 ifstat-1.1]# tar -zxvf ifstat-1.1.tar.gz

[root@hadoop1 ifstat-1.1]# cd ifstat-1.1

安装配置

[root@hadoop1 ifstat-1.1]# ./configure

编译并安装

[root@hadoop1 ifstat-1.1]# make && make install

B)、查看详细参数

[root@hadoop1 ifstat-1.1]# ifstat -help

usage: ifstat [-a] [-l] [-z] [-n] [-v] [-h] [-t] [-i if0,if1,...]

       [-d drv[:opt]] [-s [comm@][#]host[/nn]] [-T] [-A] [-w]

       [-W] [-S] [-b] [-q] [delay[/delay] [count]]

C)、测试

[root@hadoop1 ifstat-1.1]# ifstat

       eth0       

 KB/s in  KB/s out

    0.27      0.13

    0.30      0.12

    0.12      0.12

    0.18      0.12

    0.39      0.12

0.39      0.12

 

 

[root@hadoop1 ifstat-1.1]# ifstat -a

        lo                 eth0       

 KB/s in  KB/s out   KB/s in  KB/s out

    0.00      0.00      0.21      0.18

    0.00      0.00      0.12      0.13

    0.00      0.00      0.18      0.13

    0.00      0.00      0.39      0.13

 

1-6)、lrzsz 软件的安装

  1. 、安装

[root@hadoop1 /]# yum list|grep lrzsz

lrzsz.x86_64                            0.12.20-36.el7                 @anaconda

[root@hadoop1  /]# yum install  lrzsz.x86_64

Loaded plugins: fastestmirror, langpacks

base                                                                                                                                                                      | 3.6 kB  00:00:00     

extras                                                                                                                                                                     | 3.4 kB  00:00:00     

mysql-connectors-community                                                                                                                                                 | 2.5 kB  00:00:00     

mysql-tools-community                                                                                                                                                      | 2.5 kB  00:00:00     

mysql56-community                                                                                                                                                          | 2.5 kB  00:00:00     

updates                                                                                                                                                                    | 3.4 kB  00:00:00     

(1/2): extras/7/x86_64/primary_db                                                                                                                                          | 160 kB  00:00:00     

(2/2): updates/7/x86_64/primary_db                                                                                                                                         | 6.4 MB  00:02:07     

Loading mirror speeds from cached hostfile

 * base: mirrors.yun-idc.com

 * extras: mirrors.tuna.tsinghua.edu.cn

 * updates: mirrors.zju.edu.cn

Package lrzsz-0.12.20-36.el7.x86_64 already installed and latest version

Nothing to do

B)、测试

[root@hadoop2 /]# rz

 

 

 

在上传文件时文件的名字不要是以中文命名,否则会出现乱码现象。

1-7)、Python 安装

软件下载:

链接:http://pan.baidu.com/s/1kVnszXl 密码:ae9k

 

[root@localhost local]# tar -zxvf Python-2.7.1.tar.gz

[root@localhost local]# cd Python-2.7.1

[root@localhost local]# ./configure

[root@localhost local]# make && make install

[root@localhost local]# python -V

Python 2.6.6

 

或直接安装的形式

[root@hadoop1 ~]#yum  list | grep python.x86_64

[root@hadoop1 ~]# yum install -y python.x86_64

1-8)、安装PHP

[root@localhost local]# yum install php.x86_64 -y

[root@localhost local]# php -v

PHP 5.3.3 (cli) (built: Aug 11 2016 20:33:53)

Copyright (c) 1997-2010 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies         

 

1-9)、Screen 软件的安装

A)、安装screen

[root@skycloud1 ~]# yum list|grep screen

[root@skycloud1 ~]# yum install screen.x86_64

B)、设置终端编码

[root@skycloud1 ~]# vi .screenrc

escape ^Oo

caption always "%{Yk}%-w%50>%{rb}%n %t%{-}%+w%81<%{- Yk}%{Bk}|%=%{bk} %Y-%m-%d %C "

defencoding UTF-8

encoding UTF-8 GBK

vbell off

 

注意.screenrc一般放在~目录下,.screenrc是隐藏文件,前面有个.号

C)、screen常用命令

创建一个会话

#screen -S xiaoxu-hbase

 

查看已经创建的会话

# screen -ls

There are screens on:

        56422.xiaoxu-ycsb       (action)

        56382.xiaoxu-hbase      (Detached)

 

进入到action的会话中

# screen -r 56422

 

进入到Detached状态的会话

#screen -x 56382

D)、screen快捷键

ctrl + o + c : 复制一个会话

ctrl + o + A :对会话进行重命名

 

详细语法请查看:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html

 

1-10)、nmon使用

ubuntu:sudo apt-get install nmon

other:sudo yum install nmon

A)、下载nmon软件

下载请到 链接:http://pan.baidu.com/s/1nvE3fUL 密码:5hao 如果无法下载请联系作者。

B)、安装nmon

[root@hadoop1 opt]# mkdir nmon

 

[root@hadoop1 opt]# unzip nmon-analyser.zip

Archive:  nmon-analyser.zip

  inflating: nmon_linux_14i.tar.gz   

  inflating: nmon_analyser_34a.zip

 

 

[root@hadoop1 opt]# tar -zxvf nmon_linux_14i.tar.gz -C /opt/nmon/

[root@hadoop1 opt]# cd nmon

[root@hadoop1 nmon]# cp  nmon_x86_64_sles11 nmom

 

C)、配置环境变量

[root@hadoop1 nmon]# vi /etc/profile

export NMON_HOME=/opt/nmon

export PATH=$PATH:$NMON_HOME

 

[root@hadoop1 nmon]# source /etc/profile

D)、使用说明

[root@hadoop1 nmon]# nmon

 

 

 

选择选项进入不同的模式,同时按住Ctrl+c退出当前界面

其他的请使用nmon  -hep 查看使用帮助

E)、参数说明

c = CPU 统计数据

m =内存

j =文件系统

d =磁盘输入/输出信息

n =网络方面的统计数字

V =虚拟内存

r =系统信息

N =NFS

k =内核信息

t =消耗资源最多的进程

. =只显示忙碌的磁盘/进程

v : 详细模式

 

-f 这是nmon必选参数,并且必须放在第一个,就是输出文件的意思

-s 表示nmon采样的频率单位为秒;

-c 表示nmon采样的次数;

-t 输出top process

F)、使用案例

$ nmon -F test-nmon.nmon -t -s 15 -c 40

 

查看工具下载:

http://download.csdn.net/download/xfg0218/9956899

 

 

1-11)、nload 软件的使用

A)、查看当前yum中的软件

[root@hadoop1 ~]# yum list|grep ncurses

B)、安装ncurses

[root@hadoop1 ~]# yum install  -y  ncurses*

C)、安装c++

[root@hadoop1 ~]#  yum  -y install gcc make gcc-c++ openssl-devel

D)、下载nload

https://sourceforge.net/projects/nload/?source=typ_redirect

E)、解压nload

[root@hadoop1 opt]# tar -zxvf nload-0.7.4.tar.gz

F)、编译nload

[root@hadoop1 opt]# cd nload-0.7.4

[root@hadoop1 nload-0.7.4]# ./configure

[root@hadoop1 nload-0.7.4]# make  && make install

G)、查看帮助

[root@hadoop1 nload-0.7.4]# nload --help

H)、参数详解

-a:这个好像是全部数据的刷新时间周期,单位是秒,默认是300.

-i:进入网卡的流量图的显示比例最大值设置,默认10240 kBit/s.

-m:不显示流量图,只显示统计数据。

-o:出去网卡的流量图的显示比例最大值设置,默认10240 kBit/s.

-t:显示数据的刷新时间间隔,单位是毫秒,默认500。

-u:设置右边Curr、Avg、Min、Max的数据单位,默认是自动变的.注意大小写单位不同!

h|b|k|m|g    h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc.

H|B|K|M|G    H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc.

-U:设置右边Ttl的数据单位,默认是自动变的.注意大小写单位不同(与-u相同)!

Devices:自定义监控的网卡,默认是全部监控的,使用左右键切换。

1-12)、iftop软件的使用

A)、环境需要的软件

[root@hadoop1 opt]# yum install flex byacc  libpcap ncurses ncurses-devel libpcap-devel

B)、iftop下载

wget  http://www.ex-parrot.com/%7Epdw/iftop/download/iftop-0.17.tar.gz

 

C)、安装并编译

[root@hadoop1 opt]# tar -zxvf iftop-0.17.tar.gz

[root@hadoop1 opt]# cd iftop-0.17

[root@hadoop1 iftop-0.17]# ./configure

[root@hadoop1 iftop-0.17]# make && make install

D)、查看帮助iftop

[root@hadoop1 iftop-0.17]# iftop -help

iftop: display bandwidth usage on an interface by host

 

Synopsis: iftop -h | [-npbBP] [-i interface] [-f filter code] [-N net/mask]

 

   -h                  display this message

   -n                  don't do hostname lookups

   -N                  don't convert port numbers to services

   -p                  run in promiscuous mode (show traffic between other

                       hosts on the same network segment)

   -b                  don't display a bar graph of traffic

   -B                  Display bandwidth in bytes

   -i interface        listen on named interface

   -f filter code      use filter code to select packets to count

                       (default: none, but only IP packets are counted)

   -F net/mask         show traffic flows in/out of network

   -P                  show ports as well as hosts

   -m limit            sets the upper limit for the bandwidth scale

   -c config file      specifies an alternative configuration file

 

iftop, version 0.17

copyright (c) 2002 Paul Warren <[email protected]> and contributors

E)、参数详解

TX:发送流量

RX:接收流量

TOTAL:总流量

Cumm:运行iftop到目前时间的总流量

peak:流量峰值

rates:分别表示过去 2s 10s 40s 的平均流量

 

1-13)、htop 命令使用

Htop官网 :http://sourceforge.net/projects/htop/

 

[root@hadoop1 opt]# yum  install -y  htop

[root@hadoop1 opt]# htop

 

 

 

PID:进行的标识号

USER:运行此进程的用户

PRI:进程的优先级

NI:进程的优先级别值,默认的为0,可以进行调整

VIRT:进程占用的虚拟内存值

RES:进程占用的物理内存值

SHR:进程占用的共享内存值

S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态

CPU:该进程占用的CPU使用率

MEM:该进程占用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间

COMMAND:进程启动的启动命令名称

 

 

其他的操作按F1 进行查看

 

 

1-14)、iotop 命令使用

[root@hadoop1 opt]# yum install iotop

[root@hadoop1 opt]# iotop

 

 

[root@hadoop1 opt] $ iotop --help  查看帮助信息

Options:

  --version             show program's version number and exit

  -h, --help            show this help message and exit

  -o, --only            only show processes or threads actually doing I/O

  -b, --batch           non-interactive mode

  -n NUM, --iter=NUM    number of iterations before ending [infinite]

  -d SEC, --delay=SEC   delay between iterations [1 second]

  -p PID, --pid=PID     processes/threads to monitor [all]

  -u USER, --user=USER  users to monitor [all]

  -P, --processes       only show processes, not all threads

  -a, --accumulated     show accumulated I/O instead of bandwidth

  -k, --kilobytes       use kilobytes instead of a human friendly unit

  -t, --time            add a timestamp on each line (implies --batch)

  -q, --quiet           suppress some lines of header (implies --batch)

1-15)、dstat 命令使用

[root@hadoop1 opt] sudo   apt  install dstat

[root@hadoop1 opt]  dstat -h     查看帮助,请详细查看参数,其中一下参数比较重要:

-c, --cpu                enable cpu stats

-d, --disk               enable disk stats

-m, --mem                enable memory stats

-n, --net                enable network stats

-p, --proc               enable process stats

 

 

[root@hadoop1 opt]$   dstat

 

 

 

[root@hadoop1 opt]$ dstat  -m

 

 

1-16)、ag 命令使用

ag :比grep、ack更快的递归搜索文件内容

A)、ubuntu系统安装

[root@hadoop1 opt]$ yum install silversearcher-ag

B)、简单使用

详细使用请使用:$ag  --help

root@hadoop1 opt]$ ag "s"

1.log

5:s

7:s

9:sss

 

2.log

1:sdsfefe

root@hadoop1 opt]$  ag "s" 1.log

5:s

7:s

9:sss

C)、制定过滤后缀的查找

$ ag -l --java "JDBC Multitable Consumer"

 

1-17)、mycli 命令使用

mysql客户端,支持语法高亮和命令补全

 

root@hadoop1 opt$ yum  install mycli

root@hadoop1 opt]$  mycli -h localhost -uroot

Password:

Version: 1.8.1

Chat: https://gitter.im/dbcli/mycli

Mail: https://groups.google.com/forum/#!forum/mycli-users

Home: http://mycli.net

Thanks to the contributor - jweiland.net

mysql root@localhost:(none)> show DATABASES;

 

可以体验一下快捷键补全的效果

 

1-18)、axel 命令使用

root@hadoop1 opt]$ yum  install axel

root@hadoop1 opt]$ axel --help

用法: axel [选项] 地址 1 [地址 2] [地址…]

 

--max-speed=x -s x 指定最大速率(字节/秒)

--num-connections=x -n x 指定最大连接数

--output=f -o f 指定本地输出文件

--search[=x] -S [x] 搜索镜像并从 X 服务器下载

--header=x -H x 添加报头字符串

--user-agent=x -U x 设置用户代理

--no-proxy -N 不使用任何代理服务器

--insecure -k 不校验 SSL 证书

--quiet -q 使用输出简单信息模式

--verbose -v 更多状态信息

--alternate -a 另一种进度指示器

--help -h 帮助信息

--version -V 版本信息

 

 

root@hadoop1 opt]$sudo axel -n 20 http://releases.ubuntu.com/17.04/ubuntu-17.04-desktop-i386.iso

1-19)、bwm-ng 命令使用

A)、bwm-ng安装

Ubuntu 安装

$ sudo  apt-get install bwm-ng

B)、执行bwm-ng

$ sudo bwm-ng

 

 

可以看出每个网卡网络流量的信息

 

1-20)、网络分析抓包工具wireshark-qt

A)、安装wireshark-qt

Ubuntu 安装

$ sudo apt install wireshark-qt

B)、使用wireshark

$ sudo wireshark

 

 

 

1-21)、文件比较工具

以下软件适用于ubuntu直接安装,主要介绍meld与diffuse安装与使用

  1. meld软件安装

$ sudo apt-get install meld

B)、meld软件查看效果

 

C)、diffuse软件安装

#sudo apt-get install diffuse

D)、diffuse软件查看效果

 

 

1-22)、ubuntu截图软件deepin-scrot

http://blog.csdn.net/xfg0218/article/details/79029993

 

A)、安装

#sudo apt-get install python-xlib

#wget http://packages.linuxdeepin.com/deepin/pool/main/d/deepin-scrot/deepin-scrot_2.0-0deepin_all.deb

#sudo apt-get -f install

#sudo dpkg -i deepin-scrot*

  1. 、使用

#deepin-scrot

 

Linux常用软件卸载

1-1)、MySql卸载

[root@ckycloud1 mysql]# yum list installed mysql*

Loaded plugins: fastestmirror, refresh-packagekit, security

Loading mirror speeds from cached hostfile

 * base: mirrors.btte.net

 * extras: mirrors.yun-idc.com

 * updates: mirrors.btte.net

Error: No matching Packages to list

 

[root@ckycloud1 mysql]# rpm -qa | grep -i mysql

MySQL-devel-5.6.26-1.linux_glibc2.5.x86_64

MySQL-server-5.6.26-1.linux_glibc2.5.x86_64

MySQL-shared-5.6.26-1.linux_glibc2.5.x86_64

MySQL-client-5.6.26-1.linux_glibc2.5.x86_64

MySQL-shared-compat-5.6.26-1.linux_glibc2.5.x86_64

MySQL-embedded-5.6.26-1.linux_glibc2.5.x86_64   

 

 

[root@ckycloud1 mysql]# yum remove mysql MySQL-devel-5.6.26-1.linux_glibc2.5.x86_64 、、、、

Loaded plugins: fastestmirror, refresh-packagekit, security                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

Liunx上的服务操作

1-1)、关闭防火墙

在机器上关闭防火墙

[root@hadoop1 /]# service iptables stop

开启开机自关

[root@hadoop1 /]# chkconfig iptables off

1-2)、关闭MySql服务

[root@hadoop1 ~]# service mysqld stop

[root@hadoop1 ~]# chkconfig mysqld off

1-3)、重启网络服务

[root@localhost local]# service network restart

1-4)、开启httpd服务

[root@localhost ~]# service httpd restat

Usage: httpd {start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest}

1-5)、关闭Transparent Huge Pages(THP)

查看状态

[root@hdoop1 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag

[always] madvise never

 

说明是开启的

[root@hdoop1 ~]# vim /etc/rc.d/rc.local

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then

 echo never > /sys/kernel/mm/transparent_hugepage/enabled

 fi

 if test -f /sys/kernel/mm/transparent_hugepage/defrag; then

 echo never > /sys/kernel/mm/transparent_hugepage/defrag

 fi

 

付给权限

[root@hdoop1 ~]# chmod +x /etc/rc.d/rc.local

 

重启机器再次查看THP信息

[root@hdoop1 ~]#cat /sys/kernel/mm/transparent_hugepage/enabled

 always madvise [never]

说明是关闭的

Linux 检测磁盘的性能

$ sudo  time dd if=/dev/sda1 of=txt bs=1M count=1024

记录了1024+0 的读入

记录了1024+0 的写出

1073741824 bytes (1.1 GB, 1.0 GiB) copied, 8.46182 s, 127 MB/s

0.00user 0.90system 0:08.57elapsed 10%CPU (0avgtext+0avgdata 3184maxresident)k

49208inputs+2097152outputs (0major+344minor)pagefaults 0swaps

 

记录了1024+0 的读入:表示读入了多少数据

记录了1024+0 的写出:表示写出了说少数据

127 MB/s:表示写入1024M的数据的速度

Linux 性能优化

1-1)、关闭不必要的服务

  1. 使用ntsysv命令查看开启与关闭的服务
  2. 停止打印服务

[root@hadoop1 /]# /etc/init.d/cups  stop d

[root@hadoop1 /]# chkconfig  cups o ff

1-2)、关闭IP6

[root@hadoop1 /]# vim /etc/modprobe.conf

在下面添加一下配置:

alias net-pf-10  off

alias  ipv6  off

1-3)、调整文件的最大的打开数

修改临时配置:

查看当前的文件的数量:

[root@skycloud1 ipv4]# ulimit -n

1024

[root@skycloud1 ipv4]# ulimit -n 1000000

[root@skycloud1 ipv4]# ulimit -n

1000000

 

 

修改永久配置:
[root@hadoop1 /]# vi /etc/security/limits.conf 在文件最后加上:

* soft nofile 65535

* hard nofile 65535

* soft nproc 65535

* hard nproc 65535

1-4)、修改 linux 内核参数

[root@hadoop1 /]# vi /etc/sysctl.conf

在文本的最后追加一下内容:

net.core.somaxconn = 32768

 

表示物理内存使用到 90%(100-10=90)的时候才使用 swap 交换区

1-5)、关闭 noatime

在最后追加一下内容

/dev/sda2 /data ext3 noatime,nodiratime 0 0

 

1-6)、调节网络传送的数据包MTU

MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。

查看:[root@hadoop1 nginx]# cat /sys/class/net/eth0/mtu

设置:[root@hadoop1 nginx]# echo "1460" > /sys/class/net/eth0/mtu

1-7)、在系统方面调节最大连接数(somaxconn)

[root@hadoop1 ~]# more /proc/sys/net/core/somaxconn

128

[root@hadoop1 ~]#  echo 50000 > /proc/sys/net/core/somaxconn

[root@hadoop1 ~]# more /proc/sys/net/core/somaxconn

50000

 

1-8)、加快TCP链接的回收(Recycle)

[root@hadoop1 ipv4]# more  /proc/sys/net/ipv4/tcp_tw_recycle

0

[root@hadoop1 ipv4]# cd   /proc/sys/net/ipv4/

[root@hadoop1 ipv4]#  echo  1 > tcp_tw_recycle

[root@hadoop1 ipv4]# more  /proc/sys/net/ipv4/tcp_tw_recycle

1

 

1-9)、空的tcp是否允许回收利用(Reuse)

[root@skycloud1 ipv4]# cd   /proc/sys/net/ipv4

[root@skycloud1 ipv4]# more  /proc/sys/net/ipv4/tcp_tw_reuse

0

[root@skycloud1 ipv4]# echo  1 > tcp_tw_reuse

[root@skycloud1 ipv4]# more  /proc/sys/net/ipv4/tcp_tw_reuse

1

Linux 常见问题排查

1-1)、Kernel panic - not syncing: Attempted to kill init

 

 

 

解决方法

系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,选择“kernel /vmlinuz-XXXXro root=/dev/vogroup00/logvol00 rhgb quiet” 一栏,按‘e’键进入编辑,在末尾增加enforcing=0,即:

kernel /vmlinuz-XXXXro root=/dev/vogroup00/logvol00 rhgb quiet enforcing=0(其中enforcing=0是需要加上去的,其他不动)

按‘b’键继续引导,OK顺利前进。(备注这里的XXX与你具体的系统版本有关)

 

 

 

Linux 系统出现问题排查思路

1-1)、查看用户信息

A)、查看当前的用户

[root@hadoop1 ~]# who

 04:39:39 up  1:30,  1 user,  load average: 0.01, 0.01, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     pts/0    192.168.215.1    04:27    0.00s  0.16s  0.02s w

 

B)、查看最近登录的用户

[root@hadoop1 ~]# last

***************

root     pts/2        hadoop2          Sun Oct 16 15:52 - 15:52  (00:00)    

root     pts/1        192.168.215.1    Sun Oct 16 15:39 - down   (00:23)    

hadoop  pts/0        :0.0             Sun Oct 16 00:33 - down   (15:30)    

hadoop  tty1         :0               Sun Oct 16 00:31 - down   (15:31)    

reboot   system boot  2.6.32-573.el6.x Sun Oct 16 08:16 - 16:03  (07:47)

 

1-2)、查看直线执行的命令

[root@hadoop1 ~]# history

***************

  683  last

  684  clear

  685  last

  686  clear

  687  history

 

1-3)、查看现在运行的进程

[root@hadoop1 ~]# pstree -a

init

  ├─NetworkManager --pid-file=/var/run/NetworkManager/NetworkManager.pid

  ├─abrtd

  ├─acpid

  ├─atd

  ├─auditd

  │   └─{auditd}

  ├─bonobo-activati --ac-activate --ior-output-fd=12

*******************

 

 

[root@hadoop1 ~]# ps  aux

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root          1  0.0  0.0  19352  1544 ?        Ss   03:09   0:02 /sbin/init

root          2  0.0  0.0      0     0 ?        S    03:09   0:00 [kthreadd]

root          3  0.0  0.0      0     0 ?        S    03:09   0:00 [migration/0]

root          4  0.0  0.0      0     0 ?        S    03:09   0:00 [ksoftirqd/0]

root          5  0.0  0.0      0     0 ?        S    03:09   0:00 [stopper/0]

 

1-4)、查看网络服务的进程

A)、查看正在运行的端口

[root@hadoop1 ~]# netstat -nltl

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State      

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      

tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      

tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      

tcp        0      0 :::2181                     :::*                        LISTEN      

tcp        0      0 :::37129                    :::*                        LISTEN      

 

B)、正在活跃的端口

[root@hadoop1 ~]# netstat -nulp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

udp        0      0 0.0.0.0:631                 0.0.0.0:*                               2089/cupsd

 

C)、查看UNIX活跃的端口

[root@hadoop1 ~]#  netstat -nxlp

Active UNIX domain sockets (only servers)

Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path

unix  2      [ ACC ]     STREAM     LISTENING     13954  2136/hald           @/var/run/hald/dbus-WAkpL6y5o7

unix  2      [ ACC ]     STREAM     LISTENING     16245  2614/gnome-session  @/tmp/.ICE-unix/2614

unix  2      [ ACC ]     STREAM     LISTENING     15966  2524/Xorg           @/tmp/.X11-unix/X0

unix  2      [ ACC ]     STREAM     LISTENING     13947  2136/hald           @/var/run/hald/dbus-QUMwKtSaJ5

unix  2      [ ACC ]     STREAM     LISTENING     13818  2089/cupsd          /var/run/cups/cups.sock

*********************

 

1-5)、查看CPU与内存

A)、查看空闲的内存以及内存与硬盘之间的SWAP

[root@hadoop1 ~]# free -m

             total       used       free     shared    buffers     cached

Mem:          1862        475       1386          1         27        202

-/+ buffers/cache:        245       1616

Swap:         2047          0       2047

 

 

 

[root@hadoop1 ~]# free -g

              总计         已用        空闲      共享    缓冲/缓存    可用

内存:          15           7           1           0           6           6

交换:           1           0           1

 

B)、查看运行的详细信息

[root@hadoop1 ~]# uptime

 04:59:59 up  1:50,  1 user,  load average: 0.00, 0.00, 0.00

当前时间 04:59:59

系统已运行的时间 1:50

当前在线用户 1 user

平均负载:0.00, 0.00, 0.00,最近1分钟、5分钟、15分钟系统的负载

 

C)、动态查看运行的内存,CPU等信息

[root@hadoop1 ~]# top

top - 12:26:46 up 16:21,  1 user,  load average: 0.00, 0.00, 0.00

Tasks:  82 total,   1 running,  81 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 99.7%id,  0.1%wa,  0.0%hi,  0.1%si,  0.0%st

Mem:   1895288k total,   665188k used,  1230100k free,    20628k buffers

Swap:  2097144k total,        0k used,  2097144k free,    80392k cached

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                         

  2269 root      20   0 15056 1080  832 R  2.0  0.1   0:00.01 top                                                                                                                              

     1 root      20   0 19356 1536 1228 S  0.0  0.1   0:01.81 init                                                                                                                             

     2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                         

     3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                                                                                      

     4 root      20   0     0    0    0 S  0.0  0.0   0:01.13 ksoftirqd/0                                                                                                                      

     5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                                                                                      

     6 root      RT   0     0    0    0 S  0.0  0.0   0:00.14 watchdog/0                                                                                                                       

     7 root      20   0     0    0    0 S  0.0  0.0   0:41.30 events/0                                                                                                                         

     8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup                                                                                                                           

     9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper

***********************

1-6)、硬件信息

1-1)、系统中所有PCI总线设备或连接到该总线上的所有设备

[root@hadoop3 ~]# lspci

00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)

00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)

00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)

00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)

00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)

 

1-2)、查看硬件方面的信息

[root@hadoop1 ~]# ethtool eth0

*******************

Handle 0x0229, DMI type 33, 31 bytes

64-bit Memory Error Information

Type: OK

Granularity: Unknown

Operation: Unknown

Vendor Syndrome: Unknown

Memory Array Address: Unknown

Device Address: Unknown

Resolution: Unknown

 

Handle 0x022A, DMI type 126, 4 bytes

Inactive

 

Handle 0x022B, DMI type 127, 4 bytes

End Of Table

 

1-7)、IO的性能

A)、查看磁盘的使用情况

[root@hadoop1 ~]# iostat

Linux 2.6.32-573.el6.x86_64 (hadoop1) 10/21/2016 _x86_64_ (1 CPU)

 

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           0.17    0.00    0.56    2.15    0.00   97.11

 

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda               1.49        75.27        10.68     645224      91568

 

B)、动态的查看服务器的状态值

[root@hadoop1 ~]# vmstat 2 10

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 0  0      0 1322196  30688 298892    0    0    37     5   39   57  0  1 97  2  0

 0  0      0 1322140  30688 298920    0    0     0     0   57   84  1  1 99  0  0

*********************

 

C)、实时的对系统的监控

[root@hadoop1 ~]# mpstat 2 10

Linux 2.6.32-573.el6.x86_64 (hadoop1) 10/21/2016 _x86_64_ (1 CPU)

 

05:37:26 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle

05:37:28 AM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

05:37:30 AM  all    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00   99.50

05:37:32 AM  all    0.00    0.00    0.00    0.00    0.00    0.50    0.00    0.00   99.50

*********************

 

D)、动态显示当前的操作IO的进程

[root@hadoop1~]# yum -y install dstat

[root@hadoop1 ~]# dstat --top-io --top-bio

----most-expensive---- ----most-expensive----

     i/o process      |  block i/o process   

bash         53k  316B|init         19k  198B

sshd: root@ 301B  340B|tpvmlpd2      0  4096B

sshd: root@ 136B  180B|jbd2/sda2-8   0    56k

 

 

1-8)、文件系统以及外接磁盘的信息

A)、查看当前的挂在的设备

[root@hadoop1 ~]# mount

/dev/sda2 on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)

 

B)、查看是否有专用的文件系统

[root@hadoop1 ~]# cat /etc/fstab

#

# /etc/fstab

# Created by anaconda on Sun Oct 16 07:55:57 2016

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=b89c0aae-3284-4835-9b1b-04986146cd96 /                       ext4    defaults        1 1

UUID=a1313d92-6873-402d-95a6-add6cd1321c6 /boot                   ext4    defaults        1 2

UUID=6a5cde98-2fc5-4d8f-976c-92acb39ab2a9 swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

 

C)、查看文件系统的挂在的选项

[root@hadoop1 ~]# vgs

 

D)、查看物理卷的信息

[root@hadoop1 ~]# pvs

 

E)、查看磁盘的剩余情况

[root@hadoop1 ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2        18G  6.2G   11G  38% /

tmpfs           932M   72K  932M   1% /dev/shm

/dev/sda1       283M   41M  228M  16% /boot

 

F)、列出当前系统打开文件的工具

[root@hadoop1 /]# lsof +D / /* beware not to kill your box */

***************

lsof      3907      root  mem    REG                8,2     22536     265965 /lib64/libdl-2.12.so

lsof      3907      root  mem    REG                8,2   1926480     265960 /lib64/libc-2.12.so

lsof      3907      root  mem    REG                8,2    124624     265966 /lib64/libselinux.so.1

lsof      3907      root  mem    REG                8,2  99158576     394281 /usr/lib/locale/locale-archive

 

1-9)、内核与网络

A)、显示在/proc/sys目录中的内核参数

**************

net.ipv6.nf_conntrack_frag6_high_thresh = 4194304

net.ipv6.ip6frag_secret_interval = 600

net.ipv6.mld_max_msf = 64

net.nf_conntrack_max = 65536

net.unix.max_dgram_qlen = 10

abi.vsyscall32 = 1

crypto.fips_enabled = 0

 

B)、irq的序号, 在各自cpu上发生中断的次数,可编程中断控制器,设备名称(request_irq的dev_name字段)

[root@hadoop1 /]# cat /proc/interrupts

            CPU0       

   0:        261   IO-APIC-edge      timer

   1:          8   IO-APIC-edge      i8042

   4:       4838   IO-APIC-edge    

   8:          1   IO-APIC-edge      rtc0

   9:          0   IO-APIC-fasteoi   acpi

 

C)、查看链接数据库的信息

[root@hadoop1 /]#  cat /proc/net/ip_conntrack /* may take some time on busy servers */

**************

cat: sys/: Is a directory

cat: tmp/: Is a directory

cat: usr/: Is a directory

cat: var/: Is a directory

 

D)、查看网络套接字连接情况

[root@hadoop1 /]# netstat

************

unix  3      [ ]         STREAM     CONNECTED     13648  

unix  3      [ ]         STREAM     CONNECTED     13647  

unix  3      [ ]         DGRAM                    10073  

unix  3      [ ]         DGRAM                    10072  

 

E)、获取socket统计信息

[root@hadoop1 /]# ss -s

Total: 602 (kernel 610)

TCP:   15 (estab 4, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 8

 

Transport Total     IP        IPv6

*   610       -         -        

RAW   0         0         0        

UDP   1         1         0        

TCP   15        5         10       

INET   16        6         10       

FRAG   0         0         0  

 

1-10)、日志消息与内核信息的查看

  1. 、显示linux内核的环形缓冲区信息

[root@hadoop1 /]# dmesg  [ tail / less / grep / more  ]

*************

eth0: no IPv6 routers present

lp: driver loaded but no devices found

ppdev: user-space parallel port driver

hrtimer: interrupt took 2588670 ns

 

B)、查看系统报错日志

[root@hadoop1 /]# less /var/log/messages

Oct 16 08:16:22 localhost kernel: imklog 5.8.10, log source = /proc/kmsg started.

Oct 16 08:16:22 localhost rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1604" x-info="http://www.rsyslog.com"] start

Oct 16 08:16:22 localhost kernel: Initializing cgroup subsys cpuset

Oct 16 08:16:22 localhost kernel: Initializing cgroup subsys cpu

*************

 

C)、安全信息和系统登录与网络连接的信息

[root@hadoop1 /]# less /var/log/secure

Oct 16 08:17:06 localhost sshd[8287]: Server listening on 0.0.0.0 port 22.

Oct 16 08:17:06 localhost sshd[8287]: Server listening on :: port 22.

Oct 16 00:22:58 localhost polkitd(authority=local): Registered Authentication Agent for session /org/freedesktop/ConsoleKit/Session1 (system bus name :1.25 [/usr/libexec/polkit-gnome-authentication-agent-1], object path /org/gnome/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)

********************

 

1-11)、查看定时的任务

  1. 、查看定时任务的运行频率

[root@hadoop1 /]# ls /etc/cron* + cat

/etc/cron.daily:

cups  logrotate  makewhatis.cron  mlocate.cron  prelink  readahead.cron  tmpwatch

 

/etc/cron.hourly:

0anacron

 

/etc/cron.monthly:

readahead-monthly.cron

 

/etc/cron.weekly:

 

B)、查看用户是否执行了隐藏的命令

[root@hadoop1 /]# for user in $(cat /etc/passwd | cut -f1 -d:); do crontab -l -u $user; done

no crontab for root

no crontab for bin

no crontab for daemon

 

Ubuntu 使用自带工具制作启动盘

本实例使用ubuntu自带的工具制作

1-1)、查找软件

在安装的软件中搜索以安装的软件,关键字:即可看到以下图标

猜你喜欢

转载自blog.csdn.net/xfg0218/article/details/82317090