Linux是一套免费使用和自由传播的类Unix操作系统(主要用在服务器上),接下来详细的介绍一下linux的一些知识。
/ :根目录,一般的只存放目录把存放文件
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 并以此在以下机器上执行操作:
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)、创建好虚拟机并启动
[root@hadoop1 sbin]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop1
或者在终端上输入setup 进去到IP的设计界面
[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:
[root@hadoop1 ~]# cd /root/
[root@hadoop1 root]# ssh-keygen
[root@hadoop1 /]# ssh-copy-id hadoop2
[root@hadoop1 /]# ssh-copy-id hadoop3
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
[root@hadoop1 /]# vi /etc/hosts
192.168.215.314 hadoop1
192.168.215.135 hadoop2
192.168.215.136 hadoop3
[root@skycloud3 ~]# vi /etc/sysconfig/network
[root@skycloud4 ~]# vi /etc/udev/rules.d/70-persistent-net.rules
[root@skycloud4 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[root@hadoop4 conf]# reboot
[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
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 如果无法下载请联系作者。
[root@hadoop1 ~]# find / -ctime -1
-1 是前一天的,一次类推
[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
[root@hadoop1 local]# du -h start_sh/
36K start_sh/
[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
[root@hadoop1 /]# shutdown -h now
[root@hadoop1 /]# shutdown -h +10
[root@hadoop1 /]# halt
[root@hadoop1 /]# reboot
[root@hadoop1 /]# clear
Ctrl + l 清屏快捷键
命令模式、插入模式、末行模式
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
[root@hadoop1 /]# cat 1.text
a
b
a
[root@hadoop1 /]# sed 's/b/xiaozhang/g' 1.text
a
xiaozhang
a
[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
Ctrl + l
[root@skycloud2 redis_cluster]# netstat -nltp|grep redis
格式基本格式 :
* * * * * 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
实例:sudo ln -s 源文件 目标文件
删除:[root@hadoop1 software] rm -rf 源文件
[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
[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:
[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
[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
[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
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
[root@hadoop1 ~]# pkill java
或
[root@hadoop1 ~]# killall java
或
Jps | zargs kill -9
[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 : 表示一共显示多少次
$ 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)
************
-b:删除覆盖以前的建立的软连接
-d, -F:允许超级用户制作目录的硬链接
-f : 强制执行
-i :交互模式,文存在则提示用户是否覆盖
-n:把符号链接视为一般的链接
-v:显示详细的处理过程
$ ln -s /google/chrome/google-chrome /usr/bin/
/google/chrome/google-chrome:源文件的路径
/usr/bin/:目标文件的路径
$ echo 1772 |awk '{printf("%x\n", $0)}'
6ec
$ 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
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
在“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
[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
[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
[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
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
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
$ ls
dome1 dome.txt seq1.log seq.log
$ 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
$ 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
$ 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
$ 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
$ ls -a
. .. dome1 dome.txt seq1.log seq.log
$ ls -d */
dome1/
$ 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
$ 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
$ 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
$ ls --color=never
dome1 dome.txt seq1.log seq.log
$ 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
$ ls -p
dome1/ dome.txt seq1.log seq.log
$ ls -r
seq.log seq1.log dome.txt dome1
$ ls -R
.:
dome1 dome.txt seq1.log seq.log
./dome1:
seq.log
$ 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
$ 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
$ ls ~
*********
$ ls --version
ls (GNU coreutils) 8.26
Copyright (C) 2016 Free Software Foundation, Inc.
[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
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
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
[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
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,默认是用 [tab] 键来分隔;
-k :以那个区间 (field) 来进行排序的意思
-o : 对数据进行重定向
[root@hadoop1 /]# vi test.log
aa 1
bb 3
cc 2
ab 4
ba 1
de 2
ef 6
dfd 7
[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
-n : 读取下一行到模式空间,安静的模式
-N : 追加下一行到模式空间
:a : 定义标签a
ba:返回标签a
ta :如果执行成功则返回标签a
Ta:如果执行不成功则返回a
-e : 直接在命令列模式上进行sed的动作操作
-f : 直接将sed的动作写在一个文件内
-i:直接修改读取文件中的内容,而不是输出到终端
p :列印,亦即将某个选择的数据印出
a :新增
c :取代
d :删除
i :插入
s :取代
准备数据
复制一份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
$ 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)
A)、查找含有root关键字的信息
区分大小写
$ grep "root" passwd
root:x:0:0:root:/root:/bin/bash
nm-open:x:117:124:NetworkManager OpenVPN,,,:/var/lib/open/chroot:/bin/false
不区分大小写
$ grep -i "root" passwd
root:x:0:0:root:/root:/bin/bash
nm-open:x:117:124:NetworkManager OpenVPN,,,:/var/lib/open/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-open:x:117:124:NetworkManager OpenVPN,,,:/var/lib/open/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-open:x:117:124:NetworkManager OpenVPN,,,:/var/lib/open/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-open:x:117:124:NetworkManager OpenVPN,,,:/var/lib/open/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
# find ~ -name '*jpg'
# find ~ -iname '*jpg'
# find ~ ( -iname '*jpeg' -o -iname '*jpg' )
# find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f
# find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7
# find /var/log -size +1G
-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
$ 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
*************
$ 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
*************
$ 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:*
***********************
$ 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
$netstat -lt : 列出所有
$netstat -lt 列出所有监听 tcp 端口
$netstat -lu 列出所有监听 udp 端口
$netstat -lx 列出所有监听 UNIX 端口
$netstat -s 显示所有端口
$netstat -st 显示TCP的端口
$netstat -su 显示UDP的端口
$ 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
搜狐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
[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则进入具备网络文件系统功能的多用户字符界面
[root@hadoop1 opt]# yum -y install gcc make gcc-c++ openssl-devel flex byacc libpcap ncurses ncurses-devel libpcap-devel
[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
[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
[root@hadoop1 nginx]# tar -zxvf nginx-1.8.1.tar.gz -C /usr/local/
export NGINX_HOME=/usr/local/nginx/sbin
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/网站下载。 如果无法下载请联系作者。
查看本地的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 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 软件下载:链接: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 [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 在上传文件时文件的名字不要是以中文命名,否则会出现乱码现象。 软件下载: 链接: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 [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 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 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 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:自定义监控的网卡,默认是全部监控的,使用左右键切换。 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 E)、参数详解 TX:发送流量 RX:接收流量 TOTAL:总流量 Cumm:运行iftop到目前时间的总流量 peak:流量峰值 rates:分别表示过去 2s 10s 40s 的平均流量 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 进行查看 [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) [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 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" 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; 可以体验一下快捷键补全的效果 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 A)、bwm-ng安装 Ubuntu 安装 $ sudo apt-get install bwm-ng B)、执行bwm-ng $ sudo bwm-ng 可以看出每个网卡网络流量的信息 A)、安装wireshark-qt Ubuntu 安装 $ sudo apt install wireshark-qt B)、使用wireshark $ sudo wireshark 以下软件适用于ubuntu直接安装,主要介绍meld与diffuse安装与使用 $ sudo apt-get install meld B)、meld软件查看效果 C)、diffuse软件安装 #sudo apt-get install diffuse D)、diffuse软件查看效果 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* #deepin-scrot [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 在机器上关闭防火墙 [root@hadoop1 /]# service iptables stop 开启开机自关 [root@hadoop1 /]# chkconfig iptables off [root@hadoop1 ~]# service mysqld stop [root@hadoop1 ~]# chkconfig mysqld off [root@localhost local]# service network restart [root@localhost ~]# service httpd restat Usage: httpd {start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest} 查看状态 [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] 说明是关闭的 $ 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的数据的速度 [root@hadoop1 /]# /etc/init.d/cups stop d [root@hadoop1 /]# chkconfig cups o ff [root@hadoop1 /]# vim /etc/modprobe.conf 在下面添加一下配置: alias net-pf-10 off alias ipv6 off 修改临时配置: 查看当前的文件的数量: [root@skycloud1 ipv4]# ulimit -n 1024 [root@skycloud1 ipv4]# ulimit -n 1000000 [root@skycloud1 ipv4]# ulimit -n 1000000 修改永久配置: * soft nofile 65535 * hard nofile 65535 * soft nproc 65535 * hard nproc 65535 [root@hadoop1 /]# vi /etc/sysctl.conf 在文本的最后追加一下内容: net.core.somaxconn = 32768 表示物理内存使用到 90%(100-10=90)的时候才使用 swap 交换区 在最后追加一下内容 /dev/sda2 /data ext3 noatime,nodiratime 0 0 MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。 查看:[root@hadoop1 nginx]# cat /sys/class/net/eth0/mtu 设置:[root@hadoop1 nginx]# echo "1460" > /sys/class/net/eth0/mtu [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 [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 [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 解决方法 系统启动的时候,按下‘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与你具体的系统版本有关) 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) [root@hadoop1 ~]# history *************** 683 last 684 clear 685 last 686 clear 687 history [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] 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 ********************* 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-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 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 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 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 [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) ******************** [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自带的工具制作 在安装的软件中搜索以安装的软件,关键字:即可看到以下图标1-5)、流量查看软件
1-6)、lrzsz 软件的安装
1-7)、Python 安装
1-8)、安装PHP
1-9)、Screen 软件的安装
1-10)、nmon使用
1-11)、nload 软件的使用
1-12)、iftop软件的使用
1-13)、htop 命令使用
1-14)、iotop 命令使用
1-15)、dstat 命令使用
1-16)、ag 命令使用
1-17)、mycli 命令使用
1-18)、axel 命令使用
1-19)、bwm-ng 命令使用
1-20)、网络分析抓包工具wireshark-qt
1-21)、文件比较工具
1-22)、ubuntu截图软件deepin-scrot
Linux常用软件卸载
1-1)、MySql卸载
Liunx上的服务操作
1-1)、关闭防火墙
1-2)、关闭MySql服务
1-3)、重启网络服务
1-4)、开启httpd服务
1-5)、关闭Transparent Huge Pages(THP)
Linux 检测磁盘的性能
Linux 性能优化
1-1)、关闭不必要的服务
1-2)、关闭IP6
1-3)、调整文件的最大的打开数
[root@hadoop1 /]# vi /etc/security/limits.conf 在文件最后加上:1-4)、修改 linux 内核参数
1-5)、关闭 noatime
1-6)、调节网络传送的数据包MTU
1-7)、在系统方面调节最大连接数(somaxconn)
1-8)、加快TCP链接的回收(Recycle)
1-9)、空的tcp是否允许回收利用(Reuse)
Linux 常见问题排查
1-1)、Kernel panic - not syncing: Attempted to kill init
Linux 系统出现问题排查思路
1-1)、查看用户信息
1-2)、查看直线执行的命令
1-3)、查看现在运行的进程
1-4)、查看网络服务的进程
1-5)、查看CPU与内存
1-6)、硬件信息
1-7)、IO的性能
1-8)、文件系统以及外接磁盘的信息
1-9)、内核与网络
1-10)、日志消息与内核信息的查看
1-11)、查看定时的任务
Ubuntu 使用自带工具制作启动盘
1-1)、查找软件