手动设置ip地址

如果虚拟机不能自动获取IP,只能手动配置,配置方法如下:

输入命令

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

编辑网卡的配置文件

输入上述命令后回车,打开配置文件,使用方向键移动光标到最后一行,按字母键“O”,进入编辑模式,输入以下内容:

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.4.10

NETMASK=255.255.255.0

GATEWAY=192.168.4.1

DNS1=119.29.29.29

DNS2=114.114.114.114

另外光标移动到”ONBOOT=no”这一行,更改为ONBOOT=yes

“BOOTPROTO=dhcp”,更改为BOOTPROTO=none

完成后,按一下键盘左上角ESC键,输入:wq 在屏幕的左下方可以看到,输入回车保存配置文件。

之后需要重启一下网络服务,命令为

#service network restart

网络重启后,eth0的ip就生效了,使用命令#ifconfigeth0 查看

1、从git官网下载windows版本的git:http://git-scm.com/downloads
2、一般使用默认设置即可:一路next,git安装完毕!
3、但是如果这时你打开windows的cmd,在里面打git命令会提示“不是内部或外部命令,也不是可运行的程序”,想要直接在windows的cmd里使用git命令要多加如下两步
3.1、找到git安装路径中git-core的位置,如:C:\Program Files (x86)\Git\cmd;
注:”C:\Program Files\Git\”是安装路径,可能与你的安装路径不一样,要按照你自己的路径替换”C:\Program Files\Git\”

3.2、右键“计算机”->“属性”->“高级系统设置”->“环境变量”->在下方的“系统变量”中找到“path”->选中“path”并选择“编辑”->将3.1种找到的git-core路径复制到其中->保存并退出
注:“path”中,每个路径之间要以英文输入状态下的分号“;”作为间隔

现在就可以在cmd里尽情的使用git了~

1 检查是否安装Samba

rpm -qa samba

2 安装samba

yum -y install samba samba-client samba-common

/etc/samba/smb.conf 配置文件位置

windows下查看linux samba服务器共享的办法

\\ ip\目录名称

service smb start 启动smb

3 核心配置文件smb.conf

默认的配置选项内容太多 先备份一个 自己建立一个新的smb.conf

[global] //全局配置必须要有

workgroup = onedog //工作组名称

netbios name = onedog //windows中现实计算机的名称

server string = my linux samba server //samba服务器的说明信息 随意填写

log file = /var/log/samba/%m.log // samba用户的日志文件 %m代表客户端主机名

security = user //定义数据共享的方式 有 user (用户验证) share(直接共享不要密码)

map to guest = Bad User

[onedog] //定义windows中现实出来的共享目录名称

path = /data/onedog // 指定共享的目录

writeable = yes //yes代表可写 no代表不可写

browsable = yes //定义是否可以在windows下工作组下看到共享的文件夹 no代表隐藏

guest ok = yes //定义是否匿名用户可以登录 如果security 设置为user 默认就是NO

4建立共享目录

mkdir -p /data/onedog

chown -R nobody:nobody /data/onedog 设置目录权限

5 重启SMB服务

service smb restart

6访问samba服务器的共享文件

\\ip

二 linux下访问samba服务器的共享文件

smbclient -L //ip -U 用户名 //-L list

useradd admin

pdbedit -a admin

登录samba服务器

smbclient //ip -U 用户名

smb: \> ls

通过mount命令 将samba服务器的共享资源挂载到linux客户端

yum install cifs-untils cifs-untils-devel

mount -t cifs -o username=admin,password=*****\

//ip/onedog /data

三 授权登录samba服务器

useradd -d /data/smb1 smb1

useradd -d /data/smb2 -s /sbin/nologin smb2

cp -r /root/* /data/smb1

smbpasswd -a smb1 //通过读取/etc/passwd文件中存在的用户名

smbpasswd -a smb2

配置smb.conf

vim /etc/samba/smb.conf

[global]

workgroup = onedog

netbios name = onedog

server string = my linux samba server

log file = /var/log/samba/%m.log

max log size =50 // 定义日志文件大小

security = user

encrypt passwords = yes //设定用户密码是否加密

smb passwd file = /etc/samba/smbpasswd //指定samba的密码文件

socket options = TCP_NODELAY SO_REVBUF=8192 SO_SNDBUF=8192 // 设定socket 用于优化

os level = 33 至少要大于33

[onedog]

path = /data/onedog

comment =This is onedog //共享目录的说明文件

writeable = yes

browsable = yes

guest ok = yes

[smb1]

path = /data/smb1

comment = This is smb1

vaild users = smb1 //用于定义可以访问该samba服务器的用户

writeable = yes

browseable = yes

[smb2]

path = /data/smb2

comment = This is smb2

vaild users = smb2

create mask = 664 // 定义客户端用户的创建文件的默认权限

directory mask = 755 // 定义客户端用户的创建目录的默认权限

writeable = yes

browseable = yes

1、安装Apache

[root@localhost ~]# yum -y install httpd

# 开机自启动

[root@localhost ~]# chkconfig httpd on

# 启动httpd 服务

[root@localhost ~]# service httpd start

### 安装apache 一些扩展

root@localhost ~]# yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql

现在直接在浏览器键入http://localhost 或 http://本机IP ,应该会看到Apache的测试页面

2、安装配置MySQL

# mysql 客户端程序

# mysql-server 服务端程序

# mysql-devel 开发设计的库

[root@localhost ~]# yum -y install mysql mysql-server mysql-devel

# 开机启动

[root@localhost ~]# chkconfig mysqld on

# 启动mysqld服务

[root@localhost ~]# service mysqld start

# 进行一些安全性配置

[root@localhost ~]# /usr/bin/mysql_secure_installation

[root@localhost ~]# netstat -tulpn | grep -i mysql

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1723/mysqld

OK, 我们看到mysqld已经启动,监听在3306端口上。

添加数据库

mysql -u root -p #输入密码进入数据库

mysql > status; #检查联通性

mysql > create database onedog; #创建一个onedog 的数据库

mysql > show databases; #查看数据库

mysql > exit #退出 mysql 的命令行

3、安装php

安装相关模块:为了让PHP支持MySQL,我们可以安装php-mysql软件包;也可使用以下命令搜索可用的php模块

[root@localhost ~]# yum -y install php php-mysql

# 安装php常用扩展

[root@localhost ~]# yum search php

[root@localhost ~]# yum -y install gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap

### 重启httpd服务,这一步很重要

[root@localhost ~]# service httpd restart

然后,我们提供php页面,测试

[root@localhost ~]# cd /var/www/html/

[root@localhost html]# vim info.php

然后,我们再次在浏览器键入http://localhost 或 http://本机IP ,应该会看到如下页面

1,Linux是一个操作系统, 与windows的区别:

Linux:图形化界面简单,性能很快,在企业中当做服务器来使用.

Windows:图形化界面很炫,性能相对差,大众用户.

windows的服务器: windows2003,windows2008,windows2012

2,Linux的作用:

当做服务器来使用

3,Linux中目录结构:

bin:存放二进制可执行文件

sbin: 存放二进制可执行文件,只有root才能访问

etc:存放系统配置文件

usr:用于存放共享的系统资源

home:存放用户文件的根目录

root:超级的用户目录

dev:用于存放设备文件

lib:存放跟文件系统中的程序运行所需要的共享库及内核模块

mnt:mount系统管理员安装临时文件的安装点

boot:存放用于系统引导时使用的各种文件

tmp:用于存放各种临时文件

var:用于存放运行时需要改变数据的文件(log日志)

4,NetWork connection:

Host-only:本地跟远方的Linux通信需要用这个

NAT:多个Linux系统之间相互通信

5,使用SecureCRT

Linux命令:

ifconfig: 查看ip

service network restart:重启

命令分类:

内部命令:执行shell解析器的一部分,存放在bash目录,执行速度快,不需要创建子进程

cd:切换目录change directory

pwd:显示当前工作目录 print working directory

help:帮助

外部命令:独立于Shell解析器之外的文件程序,执行速度慢,一般存放在bin/sbin/usr/sbin/此类目录,执行时创建子线程.

ls:显示文件和目录列表

mkdir:创建目录

cp:复制文件或目录

操作文件或目录的命令:

pwd

touch:创建空文件

echo:写文件内容: echo “aaa”>a.txt

mkdir:创建目录

-p父目录不存在的情况下先生成父目录

cp:复制文件或目录

-r:递归处理,将指定目录下的文件与子目录一并拷贝

mv:移动文件或目录,文件或目录改名

rm:删除文件

-r同时删除该目录下的所有文件

-f强制删除文件或目录

rmdir:删除空目录

cat:显示文本文件内容

more,less:分页显示文本文件内容

head,tail:查看文本中开头或结尾部分的内容.

查看帮助文档:

内部命令 :help+命令(help cd)

外部命令: man+命令(man ls)

6,常见命令

===========常用命令=============

一,目录与文件命令

1,目录处理命令:mkdir,rm,ls,find,cd,mv,cp,pwd,chmod

2,操作文件命令:touch,rm,find,cat,more,less

3,压缩/解压命令:gzip,bzip2,tar

4,其他常用命令:head,tail,wc,in,mount

二,用户操作命令

useradd,userdel,usermod
useradd -m user1 #-m 是建立家目录
passwd user1 #设置密码
chsh -s /bin/bash user1 #登陆后使用bash

三,用户组操作命令

groupadd,groupdel,groupmod

四,安装软件命令

yum,rpm

五,网络命令

ping,ifconfig,netstat

===========================

echo “welcome to linux” > a.txt: 往a.txt中写入字符

cat a.txt: 查看a.txt中的内容

ctrl+L: 清屏

ctrl + z: 退出(cat > file 写入文件时使用这个键退出写入)

vi模式下: 编辑完成后点esc ,然后 如果要保存退出输入:wq,不保存退出输入:q!

点击esc, shift + z + z 退出并保存

============详解============

mkdir:创建目录 (touch a.txt :创建文件)

mkdir dir : 创建名称叫做dir目录, 创建单个目录

mkdir dir1 dir2 : 创建多个目录,dir1, dir2

mkdir dir{3..10}: 创建dir3 dir4…dir10

cp:copy复制

复制文件:

cp a.txt b.txt: 复制a.txt 且复制后的文件名为b.txt

cp a.txt dir: 将a.txt拷贝到dir文件夹下

cp *.txt dir

cp ../*.txt ../dir2:将上一级目录下的所有txt文件拷贝到上一级目录的dir2文件夹下

cp ../file* . //拷贝到上一级目录下的所有file文件到当前目录

复制目录:

cp -r dir1 dir2: 将dir1 目录复制到dir2目录中

cp -r dir/* dir1/ : 将dir中的所有文件和目录复制到dir1目录中

mv:目录移动(剪切)

移动文件:

mv file1 file2 //如果file2不存在,将file1重命名为file2

mv file2 file1//将file2命名为file1, 如果file1中有内容, 则覆盖

mv dir/* dir1//将dir 中所有目录及文件移动到dir1目录中

移动目录:

mv dir dir1//将dir目录移动到dir1目录中

mv dir2 dir3 dir1//将dir2和dir3移动到dir1中

rm:remove 删除

删除文件:

rm a.txt //删除a.txt

rm a.txt b.txt //同时删除a.txt b.txt

rm *txt//删除所有扩展名为txt的文件

rm -rf dir1/* //强制删除dir1下所有文件和目录

删除目录:

rm -rf dir1// 删除dir1 下的所有文件和目录, f是强制删除, 不需要提示

cd:切换目录

cd .. //跳转到上一级目录

cd ~ //跳转到根目录

cd /usr/local //跳转到usr下的local目录

pwd:显示当前的目录

touch:创建文件

语法:touch filename

touch myfile1//创建单个文件,文件名为myfile1

touch myfile2 myfile3//同时创建两个文件

touch myfile{1..10}//创建多个文件

cat

功能1: 查询文件内容,查询全部文件内容(如果文件过大, 会卡死)

cat filename// 查看文件名filename的文件内容

功能2: 可以创建文件, 并且写入内容

cat > myfile10

功能3:合并文件,合并内容

cat myfile1 myfile2 > myfile10//将myfile1 和 myfile2 中的内容合并到myfile10中, myfile10中内容被覆盖

more: 查看文件, 可以分页查看

+n 从第几行开始

-n 定义屏幕显示多少行

more myfile//分页查看myfile文件

more +3 myfile//从第三行开始查看myfile文件

more -2 myfile//每页显示两行

more +/pattern myfile//从myfile中搜索pattern, 结果显示在第三行

less: 查看文件, 分页上下翻滚页

head: 查看文件, 分页显示, 每页只显示10条

head myfile// 默认每页只显示10条

head -n 5 myfile//查看myfile1,每页显示5条记录

head -c 12 myfile//查看myfile,只显示前面12字节符

tail:查看文件, 实时监控文件

tail -f myfile// 实时监控myfile文件的变化

which:查找命令

which 命令

which mv//将mv命令的别名和mv所在的位置都给查询出来

whereis: 查找命令

whereis mv: 查找命令的所在位置, 帮助文档,命令源码

locate: 查找文件

locate myfile//搜索出来myfile所在目录, 需要先刷新db, 使用命令: updatedb

新创建的文件搜索不到,新创建的文件被放在Linux的文件数据库, 需要属性文件数据库才能够找到

find: 查找文件

find -name myfile//根据文件名, 在当前的目录进行查询

find -name “myfile”//和上面一个没有区别

find /etc/ /root/ -name “*[A-Z]*” //查询目录etc和root下以A-Z开头的所有文件

find /etc/ /root/ -name “*[A-Z]*” -exec ls -l {} \;// 把查询结果交给ls命令继续执行, 显示前面查询结果详细信息.

-exec:执行,执行后面的命令,执行ls -l命令

{}: 标识查询结果在一行显示

\; :命令要使用很好结束,斜杠是用来转义的.

| (管道命令)

把前面的查询结果交给后面的命令进行执行

ls -al | more -5 //查询所有,把查询的结果交给more命令去执行

grep (过滤命令) 经常和管道命令一起使用

ps -ef | grep svn//查询所有进程, 过滤查询svn

ln: 连接命令,创建快捷方式

ln -s myfile link//给myfile创建一个快捷方式link

top:显示当前系统中消耗资源的进程情况

top //每隔5秒显示徐偶有进程的资源占用情况

top -d 2//每隔2秒刷新

ps: 查看进程(常用)

ps -ef//查看所有进程

ps -ef | grep redis //查看redis进程是否存在

kill: 杀死进程(常用)

kill -9 PID

df: 显示磁盘使用情况

df -h//查看当前磁盘使用情况, 包括占用量单位

shutdown: 关机

shutdown 系统关机

shutdown -r 关机后立即重启

shutdown -h 关机后不重新启动

halt: 关机后关闭电源

reboot: 重新启动

=============================解压缩命令

gzip zip bzip2 压缩命令

gzip: 压缩文件, 不能够压缩目录

gzip file3// 把file3压缩, 压缩后文件名变为: file3.gz

gunzip: 解压

gunzip file3.gz//解压单个文件

gunzip file1.gz file2.gz //解压多个文件

通常使用 gzip -d 来解压

gzip -dv file1.gz// 解压file1, v 是视图可以看到解压过程

bzip2和gzip压缩方式一样

zip:

zip myzip.zip file1 //将file1 压缩成myzip.zip

unzip myzip.zip// 解压

tar: 打包命令, 将多个文件压缩成一个文件

tar -cvf dir.tar dir//将dir目录下所有文件打包成dir.tar

tar -xvf dir1.tar//解包

gzip dir.tar //压缩tar文件变成dir.tar.gz

tar -zxvf dir.tar.gz//解压dir.tar.gz到dir

-z:解压gz扩展名的文件

-x:解压tar包

-v:显示执行过程

-f:指定解压文件

bzip2 dir.tar//使用bzip2压缩tar包: dir.tar.bz2

tar -jxvf dir.tar.bz2//解压bzip2格式包

==============vim文本编辑器

vim进入编辑器

vi有3总模式: 插入模式,命令模式,低行模式

1,插入模式

i 进入插入模式

2,命令模式

esc 进入命令模式

3,底行模式

:或者/ 进入底行模式

在命令模式下:

基本:

a:在当前光标位置的右边添加文本

i:在当前光标的位置的左边添加文本

A:在当前行的末尾位置添加文本

I:在当前行的开始处添加文本

O: 在当前行上面创建一行

0: 在当前行下面创建一行

R:替换(覆盖)当前光标位置及后面的若干文本

J:合并光标所在行及下一行为一行

删除,撤销:

x:删除当前字符

nx: 删除从光标开始的n个字符

dd:删除当前行

ndd:删除n行

u:撤销上一步操作

U:撤销当前行的操作

搜索:

/vpser: 向光标下搜索vpser字符串

?vpser: 向光标闪搜索vpser字符串

n: 先下搜索前一个搜索动作

N: 向上搜索前一个搜索动作

跳转指定行:

n+: 向下跳转n行

n-: 向下跳转n行

nG: 调到行号为n的行

G: 跳至文件的底部

设置行号:

:set nu //显示行号

:set noun//取消显示行号

复制粘贴:

yy: 将当前行复制到缓存区

nyy:将当前行向下n行复制到缓存区

p: 当前行的下面进行粘贴

P: 当前光标所在行的上面进行粘贴

yw:复制光标到单词词尾

nyw:复制从光标开始的n个单词

y^: 复制从光标到行首的内容

y$: 复制从光标到行尾的内容

替换:

:s/old/new //用new替换行中首次出现的old 这个单词为new

:s/old/new/g //用new替换当前行中所有的old单词

:n,m s/old/new/g //用new替换从n到m行在哪个所有的old单词

:%s/old/new/g //用new替换当前文件中的所有old

7,权限管理

==================权限管理

-rwxrw-r–

– :类型

rwx:所属用户权限

rw-:所属组权限

r–:其他用户权限

最高位:文件类型

-: 普通文件

d: 目录

l: 快捷方式文件

高三位:u 所属用户权限(rwx)

中间三位:g 用户所属组权限(rw-)

第三位:o 其他用户权限(r–)

设置权限第一种方式举例:

———- file1: file1 无权限 (使用chmod 0 file1 就取消所有权限)

设置权限: (x:执行权限 r:读权限 w:写权限)

chmod u+x file1—-> —x—— file1

chmod u+r file1—-> -r-x—— file1

chmod g+w file1—-> -r-x-w—- file1

chmod g+rx file1—> -r-xrwx— file1

chmod o+rwx file1–> -r-xrwxrwx file1

chomod o=x file1—> -r-xrwx–x file1

设置权限第二种方式举例:

用421来代表rwx, 对应关系如下:

421 421 421

rwx rwx rwx

chmod后面每一位数字匹配三位: 3=2(w)+1(x) 5=4(r)+1(x)

chmod 421 file1—–> -r—w—x file1 (4代表用户的读权限,2代表组的写权限,1代表其他用户的执行权限)

chmod 354 file1—–> -rwxrwxw-x file1

8,安装软件

=======================安装软件

rpm: 安装麻烦 不建议使用

yum: 支持在线升级

1,关联dvd磁盘到本地: 右键CentOS 选择Settings, 然后找到CD/DVD 选择connected即可.

2,Yum命令支持在线升级,执行yum命令的时候,检测/etc/yum.repos.d/下面所有repo文件.

repo文件里面存储的是网址,yum命令检测repo文件里面网址直接去网上下载.

可以把repo文件修改, 让repo文件指向本地的dvd盘.

3,挂载dvd盘到mnt目录

挂载命令:mount /dev/cdrom/ mnt/

挂载成功截图:

4,修改repo文件

先备份repo文件: rename .repo .bak * //将所有repo扩展名的文件修改为后缀为.bak

创建自己的repo文件,指向本地文件:touch mine.repo

进入vim编辑repo文件: vim mine.repo

[centos6.6]

name=centos-dvd

baseurl=file:///mnt

gpgcheck=0

enabled=1

清空yum源:yum clean all

加载yum源:yum repolist all

安装mysql: yum install mysql-server

启动mysql:service mysqld start

登录数据库:mysql -uroot p

查询数据库:show databases;

======================安装jdk和tomcat

1, 先将jdk和tomcat传输到Linux root目录下

2, 在usr/local 下建立文件夹存放jdk和tomcat安装包: mkdir hadoop

3, 移动root目录下安装包 到 usr/local目录下: mv jdk-7u55-linux-i586.tar.gz apache-tomcat-7.0.47.tar.gz /usr/local/hadoop/

4, 解压安装包: tar -zxvf jdk-7u55-linux-i586.tar.gz

tar -zxvf apache-tomcat-7.0.47.tar.gz

5,配置环境变量: vim profile

在最后一行添加: export JAVA_HOME=/usr/local/hadoop/jdk1.7.0_55

export PATH=$JAVA_HOME/bin:$PATH

6,刷新设置: source /etc/profile

7,查看是否安装成功:java -version

常见问题:

1,修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory问题

解决方案:在64系统里执行32位程序如果出现/lib/ld-linux.so.2:

bad ELF interpreter: No such file or directory,

安装下glic即可:sudo yum install glibc.i686

2,error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

使用:sudo yum install zlib.i686

====================安装lrzsz(可以上传文件到指定目录)

1,安装:yum install lrzsz

2,安装后使用命令: cd /usr/local/hadoop/

rz: 直接弹出传输对话框

3,将tomcat传递到hadoop目录下

4,启动tomcat

cd /usr/local/hadoop/apache-tomcat-7.0.47/bin/

./startup.sh

前面先BB几句 shell脚本在Linux系统管理员的运维工作中非常重要,所以学好这个也是很重要的。
shell脚本并不能作为正式的编程语言,因为它在Linux的shell中运行的,所以称为shell脚本,事实上,shell脚本就是一些命令的集合。

一 :创建跟执行

!/bin/bash

This is my first shell script

Writen by one 2016-05-16

date
echo “Hello,World!”

二 数学运算

!/bin/bash

sum

a=1
b=2
sum=$[$a+$b]
echo “$a+$b=$sum”

三 和用户交互

!/bin/bash

++++

oneone

read -p “please input a number:” x
read -p “please input another number:” y
sum=$[$x+$y]
echo “the sum of the two numbers is $sum”

四 逻辑判断

不带else

!/bin/bash

read -p “please input you score:” a
if ((a<60));then echo "you did not pass the exam" fi 带else #!/bin/bash read -p "please input you score:" a if ((a<60));then echo "you did not pass the exam" else echo "good! you passed the exam" fi 带有elif #!/bin/bash read -p "please input you score:" a if ((a<60));then echo "you did not pass the exam" elif ((a>=60))&&((a<85));then echo "good you passed the exam" else echo "verygood! you passed the exam" fi 以上只是简单的介绍了if语句的结构。判断数值的大小除了可以用(())的形式外,还可以使用[]但是不能使用>< =这样子的符号了,要使用-lt(小于) -gt(大于) -le(小于或等于) -ge(大于或等于) -eq(等于) -ne(不等于) 五 和文档相关的判断 -e 判断文件或者目录是否存在 -d 判断是不是目录以及是否存在 -f 判断是不是普通文件以及是否存在 -r 判断是否有读权限 -w 判断是否有写权限 -x 判断是否可执行 #!/bin/bash if [ -f /home/ ]; then echo ok; else echo no; fi 六 case逻辑判断 case 格式 case 变量 in values1) command ;; calues2) command ;; ..... esac #!/bin/bash read -p "input a number:" n a=$[$n%2] case $a in 1) echo "the number is odd" ;; 0) echo "the number is even" ;; *) echo "it's not a number" ;; esac 未完待续,昨天晚上本来说写完了,因为太困,就睡觉去了。。。

简介

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

常用参数

grep :
-c 表示打印符合要求的行数

-i 表示忽略大小写

-n 表示输出符合要求的行及其行号

-v 表示打印不符合要求的行

-A 后面跟一个数字(有无空格都可以)例如 “-A2” 表示打印符合要求的行以及下面的两行

-B 后面跟一个数字 例如“-B2” 表示打印符合=要求的行以及上面的两行

-C 后面跟一个数字 例如“-C2” 表示打印符合要求的行以及上下各两行

-r 是递归查找

实例

grep -n ‘root’ /etc /passwd 过滤带有某个关键词的行并输出行号

grep -nv ‘root’ /etc/passwd 过滤不带有某个关键词的行并输出行号

grep ‘[0-9]’ /etc/passwd 过滤所有包含数字的行

grep -v ‘[0-9]’ /etc/passwd 过滤所有不包含数字的行

grep -v ‘^#’ 删除所有已“#”开头的行

grep -v ‘^#’/etc/crontab |grep -v ‘^$’ 删除所有的空行和以’#’开头的行

在正则表达式中“^”表示行的开始,“$”表示行的结尾,空行用“^$”表示

1”表示除[]内的字符之外的字符

过滤任意一个字符和重复的字符:grep ‘r..o’ /etc/passwd “.“表示任意一个字符 “r..o”表示把r与o之间有两个任意字符的行过滤出来。

“”表示零个或多个前面的的字符, “ooo” 表示 oo ooo ooo或者更多的o.

grep ‘r..o’ /etc/passwd

“.*” 表示零个或者多个任意字符,空行也包含在内。

grep ‘.*’ /etc/passwd |wc -l

指定要过滤的字符的出现次数

grep ‘0\{2\}’ /etc/passwd

{}其内部为数字,表示前面的字符要重复出现的次数,需要强调的是,{}左右都需要加上脱义字符“\”。另外“{}”还可以表示一个范围,具体格式为“{n1,n2}”

筛选 一个或者多个前面的字符

egrep ‘o+’ test.txt
egrep ‘oo+’ test.txt
egrep ‘ooo+’ text.txt

筛选零个或者一个前面的字符

egrep ‘o?’ test.txt
‘oo?’
‘ooo?’

筛选字符串1或者字符串2

egrep ‘oooo?’ test.txt

egrep 中()的应用

egrep ‘r(oo)|(at)o’ test.txt

用()表示一个整体,例如 “(oo)+”就表示一个‘oo’或者多个‘oo’


  1. 字符

Nmap (网络映射器)是由 Gordon Lyon设计,用来探测计算机网络上的主机和服务的一种安全扫描器。为了绘制网络拓扑图,Nmap的发送特制的数据包到目标主机,然后对返回数据包进行分析。Nmap是一款枚举和测试网络的强大工具。

一:安装

nmap可以到http://nmap.org/download.html下载最新版本,然后下一步下一步的安装就好了。然后进入命令提示符(cmd),输入nmap,如果可以看到nmap的帮助信息,说明安装成功。
二:使用

1、Nmap 简单扫描

Nmap 默认发送一个arp的ping数据包,来探测目标主机在1-10000范围内所开放的端口。

命令语法:

nmap

解释:Target ip address 为你目标主机的ip地址
例子:nmap 192.168.1.1

如果觉得命令行的不直观,也可以使用gui版nmap–Zenmap 看起来很直接很舒服对不对?
只要在目标的那栏,输入你想扫描的目标即可,如下图,我输入192.168.1.1-254其实也可以输入192.168.1.1/24 效果一样。
nmap常用组合
快速检测一个网段中的存活主机

nmap-sP x.x.x.x/24
从文本中读取相关IP,进行端口扫描,同时识别服务

nmap -p80,22-sV-iL ip.txt
只显示开放该端口的主机

nmap-p80–open 1.1.1.0/24
不使用反向解析,扫描80端口开放的主机,同时保存为xml文件

nmap-n-p80-iL ip.txt -sV–open-oX80.xml
识别一台主机的操作系统

nmap-O 1.1.1.1
在不检测一个存活主机的情况下,进行全端口扫描,识别服务

nmap-Pn-p1-65535-A-sV 1.1.1.1
扫描mysql的空口令:

nmap-p3306–script=mysql-empty-password.nse 192.168.5.1
暴力破解mssql的账户密码

nmap-p1433–script=ms-sql-brute –script-args=userdb=/var/passwd,passdb=/var/passwd 192.168.5.1

按照具体分类,参数如下

tcp:
-sT TCP连续扫描

-sS SYN扫描

-sN -sF -sX

-sM TCP Maimon扫描

-sA TCP ACK扫描

-sW TCP窗口扫描

-sI TCPIdle扫描

UDP:

-sU
–host-timeout 跳过响应过慢的主机

-p:端口范围

-F 快速扫描

-r 顺序扫描

输出选项:

-oN 正常输出

-0X XML文件输出

-oG

-sV 服务版本识别

-sO 识别目标操作系统

-Pn 禁用主机检测 (用于屏蔽了PING请求的主机) //个人感觉这个参数挺有用的。

-A 强力检测

ipv6 -6

脚本引擎:

auth: 使用暴力破解等技术找出目标系统上的认证信息

default:启动–sC 或者-A选项时运行的此类脚本

discovery:该类脚本用于探索网络

dos:使目标系统拒绝服务,

exploit 利用目标系统的安全漏洞

external:该类脚本可能泄露信息给第三方

fuzzer: 对目标系统进行模糊测试

instrusive 可能导致目标系统崩溃,或者耗尽目标系统所有资源

malware : 检查目标系统上是否存在后门

safe:

version : 配合版本检测选项-sV ,这类脚本对目标系统的服务程序进行深入的版本检测

vuln 检查目标系统上的安全漏洞

-sC 启动默认类NSE脚本

–script ||

–script-args 这个选项用于给脚本指定参数

规避检测的选项:

-f 使用小数据包

–mtu 调整数据包的大小

-D 诱饵

–source-port或者 -g 模拟源端口

–data-length 改变发动书记宝的默认数据长度

–max-parallelism 限制nmap并发的最大连接数

–scan-denlay

后记:有一天去图书馆看看书,无意间就在书架上看到了一本《Nmap渗透测试指南》 没想到nmap都有人出书了,说明有人对nmap还是挺有研究的,以前只是用来做扫描端口的,感觉自己还是太浅显。文中后一部分的内容都是参考该书。 前一部分参考了乌云知识库。关注与学习安全,乌云都是一个不错的选择。

今天因为没有正常关闭虚拟机,然后打开虚拟机就提示:无法获取快照信息: 锁定文件失败。模块“Snapshot”启动失败。未能启动虚拟机。
无法获取快照信息: 锁定文件失败。
解决方法√:
打开你存放虚拟机系统文件的文件夹,注意,是系统文件,不是虚拟机的安装目录,也就是你建立虚拟机的时候下图设置的位置:
无法获取快照信息: 锁定文件失败。
然后以下面关键字搜索这个文件夹:*.lck
无法获取快照信息: 锁定文件失败。
我这里找到2个,删之~~~~

以下就是vim的常用命令了,都是我用的时候手打的笔记,版式有点乱。。。掌握以下命令用vim感觉就顺手多了。

一般模式:

移动光标:
h或者左键 向左移动一个字符

l或者右键 向右移动一个字符

k 或者上键   向上移动一个字符

j或者下键 向下移动一个字符

ctrl+f 向前移动一页

Ctrl+b 向后移动一页

数字 0或者shift+ 6 移动到本行行首

shift +4 移动到本行行尾

gg 移动到首行

G 移动到尾行

nG(任意的数字) 移动到N行

删除、复制、粘贴:
x X x 表示向后删除一个字符,X表示向前删除一个字符

nx 向后删除n个字符

dd 删除/剪切光标所在的那一行

ndd 删除/剪切光标所在行之后的n行

yy 复制光标所在行

p 从光标所在行开始,向下粘贴已经复制或者粘贴的内容。

P 从光标所在行开始,想上粘贴已经复制或者粘贴的内容

nyy 从光标开始所在行,向下复制n行

u 还原上一步操作。

v 按v后移动光标会选中指定字符,然后可以实现复制,粘贴等操作

编辑模式:
i 在当前字符前插入.

I 在光标所在行的行首插入。

a 在当前字符前插入。

A在光标所在行的行尾插入

o 在当前行的下一行插入新的一行

O 在当前行的上一行插入新的一行

P 从光标所在行开始,向上粘贴已经复制或者粘贴的内容

nyy 从光标所在行开始,向下复制n行

u 还原上一步操作。

v 按v后移动光标会选中指定字符,然后可以实现复制,粘贴等操作

命令模式:

/word 向光标之后查找一个字符串word 按n向后继续搜索

?word 向光标之前查找一个字符串word按n向前继续搜索

: n1,n2s/word1/word2/g 在n1–n2行之间查找word1并替换为Word2 不加g 则只替换每一行的第一个word1

: 1,$s/word1/word2g 将文档中所有的word1替换为word2,不加g则肢体管每行第一个word1

:w 保存文本

:q 退出vim

:w! 强制保存,在root用户下,即使文本只读也可以完成保存

:q! 强制退出,所有改动不生效

:wq 保存并退出

:set num 显示行号

:set nonu 不显示行号

昨晚在服务器上搭建一个PHP的网站,按照往常的套路下一步下一步,一切准备工作完毕,上传了网站源码 准备开始配置网站,在浏览器输入网址,网址也解析到了服务器上,但是一打开就提示 服务器错误,500 – 内部服务器错误。你查找的资源存在问题,因而无法显示。 瞬间懵逼!想想应该没问题啊。这是为什么呢? 作为一名非专业的网管,找出问题方法第一步法,对比法,然后就对比之前搭建的PHP网站 配置,好像也没啥的不同的,一时间陷入了僵局。不自觉地就点了一根芙蓉王,眉头紧锁陷入沉思,灵光乍现突然就想了一个屌丝(刚哥),曾经对我说过 要记得启用32应用程序 启用父路径什么的。于是就有了下面的解决方法,完美解决! 信刚哥,无BUG!
解决方法:

开始菜单→管理工具→Internet 信息服务(IIS)管理器→应用程序池→网站对应的那个程序池→操作→编辑应用程序池→高级设置→启用32位应用程序→默认是Flase 改为True 。好了 ,在浏览器F5刷新一下可以正常显示了网页了。