1centos7
1.1linux常用命令
ctrl+d 结束当前命令
clear:清屏
tab:文明名称自动补全
1.1.3cd命令 切换目录
cd .. 切换到上一层目录
cd / 切换到系统根目录
cd ~ 切换到用户主目录
cd - 切换到上一个所在目录
pwd 查看当前目录
1.1.2ls命令 显示信息
ls(list)用来显示当前目录下的内容
格式:ls[参数] [路径或文件名]
ls 显示全部,不包括隐藏文件
ls –a 显示全部文件和目录,包括隐藏文件
ls –l 显示不隐藏文件与文件夹的详细信息
ls –al 显示当前目录下的所有文件及文件夹包括隐藏和非隐藏等的详细信息
1.1.3mkdir创建目录
【mkdir】常用参数
-m 为目录制定访问权限
-p 如何目录已经存在,则不会有错误提示,若父目录不存在,将会创建父目录。该选项常用于创建级联目录。
-v 为每个目录显示提示信息
【mkdir】常用案例
mkdir test 创建名称为test的目录
mkdir -p test/1 级联创建test目录和1目录
mkdir test1 test2 test3同时创建多个目录
mkdir {test1,test2,test3}同时创建多个目录
mkdir -p baklog/{bin,lib,log/{cep,dod,testlog}}
创建目录并制定权限:
mkdir -m=r a //只读
mkdir -m=w b//只写
mkdir -m=rw c//读写
mkdir -m=rx d//读可执行
mkdir -m=rwx e//读写可执行
查看创建目录的剁成信息
mkdir –vp baklog /{bin,lib,log/{cep,dod,testlog}}
1.1.4rmdir命令删除目录
【rmdir】命令
remove directory 删除一个目录,必须离开这个目录,并且目录必须为空,否则提示删除失败
rm可删除文件或者目录,但是删除之后文件不能恢复,可通过参数逐个删除
# rmdir test1:删除当前目录下的test1目录,但是test1目录必须为空否则报错如下
【rmdir】
-i 以进行交互式方式执行
-f 强制删除,忽略不存在的文件,无需提示
-r 递归地删除目录下的内容,删除文件夹时必须加此参数
【rmdir】常用案例
# rm 1.txt 删除文件1.txt 提示信息:remove regular empty file ‘1.txt’
输入y表示删除,输入n表示不删除文件
# rm test1:此时程序报cannot remove test1is a directory,不能删除目录
# rm –r test1:删除目录test1下的目录信息及下的文件或者目录,只是会递归的询问是否要删除test1下的目录信息。
# rm –rf test1:不需要提示直接删除test1目录下的所有文件及内容。
1.1.5浏览文件:cat more less tail
1.1.5.1cat浏览文件
【cat】命令参数
-n 或者 –number由1开始对所有的输出的文件进行编号
-b 或者 –nonblank与-n相似,不能对空白行编号
-s 或者 –squeeze-blank当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或者 –show-nonprinting
【cat】命令常见案例
# cat filename:一次显示一整个文件,但是当内容较多的时候,上面的部分无法显示。
# cat > filename:从键盘创建一个文件,只能创建,不能编辑已有文件
# cat file1 file2>file :将file1与file2合并为一个文件
# cat –n file1>file2把file1中的内容加上行号输入到file2文档中。
# cat –b file1 file2>>file3 把 fil1和file2 内容加上行号(空白行不加)将内容附加到file3。
EOF:end of file 文本结束符
待定
1.1.5.2more浏览文件
【more】命令说明
回车显示下一行内容
按q退出查看
空格显示下一页
more功能类似于cat,cat命令是整个文件的内容从上到下显示在屏幕上,more会以一页一页的显示,方便使用者逐页阅读。按空格键往下一页显示,按b往回显示,同时可以搜寻字符串和支持跳转功能。
【more】命令格式
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file …]
【more】命令参数
+n 从第n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字符串,然后从该字符串两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示press space to continue q to quit(按空格键继续,q退出),禁用响铃功能
-l 忽略ctrl+l字符
-p 通过清楚窗口而不是滚屏来对文件进行换页,与-c相似。
-s 把连续的多个空行显示为一行
-u 把文件内容中的下划线去掉
【more】命令常用快捷键
Enter 向下n行,需要定义,默认为1行
Ctril+F 向下滚动一屏
空格键 向下滚动一屏
ctrl+b 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
v 调用vi编辑器
! 调用shell,并执行命令
q 退出more
【more】命令案例
more +3 test.log 从第三行开始显示内容
more -4 test.log每屏显示4行
more +/tang test.log 找出文件第一个出现tang的行,并从该处的前两行显示输出
ls –l | more -5:列出目录下的文件,同时分页显示,每页显示5条。
1.1.5.3less浏览文件
【less】命令
less是正统查看文件内容的工具,用法比more更加的有弹性,不仅可以往前搜,还可以往后搜。
【less】命令格式
less[参数]文件
【less】命令参数
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
【less】命令常用案例
ps –ef|less –N:ps查看进程信息并通过less分页显示内容和行号
less test1.text test1.text 浏览多个文件,输入n切换到test1.txt,输入p切换到test2.log
less text1
:e file2 正在浏览一个文件时,也可以使用:e命令打开另一个文件
【less】命令使用注意点
1.全屏导航
ctrl + F - 向前移动一屏 ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏 ctrl + U - 向后移动半屏
2.单行导航
j - 向前移动一行 k - 向后移动一行
3.其它导航
G - 移动到最后一行 g - 移动到第一行 q / ZZ - 退出 less 命令
4.其它有用的命令
v - 使用配置的编辑器编辑当前文件 h - 显示 less 的帮助文档
&pattern - 仅显示匹配模式的行,而不是整个文件
5.标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
ma - 使用 a 标记文本的当前位置
'a - 导航到标记 a 处
6.查找
more, less 都具备查找功能,按/ 然后输入要找的字串,再按 Enter 即可,按 n(next) 会继续找,大写的 N 则是往回(上)找,按 q(quit)或者ZZ离开
1.1.5.4tail浏览文件
【tail】命令
ctrl+c:结束查看
linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容。
【tail】命令语法
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
【tail】命令参数
-f 该参数用于监视File文件增长。
-c Number 从 Number 字节位置读取指定文件
-n Number 从 Number 行位置读取指定文件。
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
-b Number 从 Number 表示的512字节块位置读取指定文件。
-k Number 从 Number 表示的1KB块位置读取指定文件。
File 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。
tail可运行文件一般在/usr/bin/以下。
【tail】命令常用案例
# tail -f filename //监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
# tail -n 20 filename //显示filename最后20行。
# tail -r -n 10 filename //逆序显示filename最后10行。
# tail -10 /etc/passwd 查看后10行数据
# tail -f catalina.log 动态查看日志
1.2文件操作相关命令
1.2.1putty的使用
putty使用需要centos连接网络配置ip,配置方式如下:
【1、首先需要通过ifconfig获取虚拟机的地址】
【2、输入:vim /etc/sysconfig/network-scripts/ifcfg-eth0】
【3、注意点】
输入i会进入编辑状态,编辑技术后按esc结束编辑
输入 :wq后enter, :quit退出编辑
修改之后执行reboot重启系统,再次输入ifconfig
【4、配置防火墙不拦截端口】
【查看当前那些端口被放行了】
命令:firewall-cmd --zone=public --list-ports;
【开放指定端口】
命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent;
【关闭指定的端口】
命令:firewall-cmd --zone=public --remove-port=3306/tcp --permanent
【执行命令是新加入的端口生效】
命令:firewall-cmd --reload
【5、配置之后打开putty.exe】
Host Name中就是输入linux的ip地址
Saved Sessions:连接的名字
配置之后如下:
1.2.2touch创建文件
【touch】命令
1、将已存在的文件的时间标签修改为系统当前的时间,也可以通过参数制定时间,但是数据不变。
2、用来创建新的空文件,这是最常见的方法
【touch】命令语法:
touch [选项][参数]
【touch】命令选项:
-a:或--time=atime或--time=access或--time=use 只更改存取时间;
-c: 或--no-create 不建立新文件
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify 只更该变动时间;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,而非现在的时间;
-help:在线帮助;
-version:显示版本信息。
linux下的三个时间标识:
access:最后一次访问文件的时间
modify:最后一次对文件内容进行修改的时间
change:最后一次对文件属性或状态进行修改的时间
详情可见:linux下三种时间的详解
【touch】命令案例实例:
touch test.txt
1.2.3cp复制命令
【cp】命令
该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。
【cp】命令语法
语法: cp [选项] 源文件或目录 目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
【cp】命令选项:
-a 或 --archive 此参数的效果和同时指定"-dpR"参数相同
-b 或 --backup 删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-l 或 --link 对源文件建立硬链接,而非复制文件
-p 或 --preserve 保留源文件或目录的属性,包括所有者、所属组、权限与时间
-P 或 --parents 保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经丰在
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
-s 或 --symbolic-link 对源文件建立符号链接,而非复制文件
-S <备份字尾字符串> 或 --suffix=<备份字尾字符串> 用"-b"参数备份目的文件后,备份文件的字尾会被加上一个备份字符串。默认的备份字尾符串是符号"~"
-u 或 --update 使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件
-v 或 --verbose 显示执行过程
-V <备份方式> 或 --version-control=<备份方式> 指定当备份文件时,备份文件名的命名方式,有以下3种:
1.numbered或t, 将使用备份编号,会在字尾加上~1~字符串,其数字编号依次递增
2.simple或never 将使用简单备份,默认的备份字尾字符串是~, 也可通过-S来指定
3.existing或nil将使用当前方式,程序会先检查是否存在着备份编号,若有则采用备份编号,若无则采用简单备份
-x 或 --one-file-system 复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件
--help 显示在线帮助
--sparse=<使用时机> 设置保存希疏文件的时机
--version 显示版本
【cp】命令注意点:
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
cp(copy)命令将一个文件、多个文件或目录复制到另一个地方。选项 -R 允许递归复制目录(一般来说,命令中的 -R 或 -r 经常有递归的意思)。如果 cp 命令的最后参数是目录,所提到的文件将被复制到该目录下。注意:默认情况下,cp 命令将“覆盖”已经存在的文件。
【cp】命令案例:
# cp -u -v file1 file2 //.复制文件,只有源文件较目的文件的修改时间新时,才复制文件
.将文件file1复制成文件file2
cp file1 file2
将file文件复制到上一层目录中
cp file ../
.采用交互方式将文件file1复制成文件file2
cp -i file1 file2
.将文件file1复制成file2,因为目的文件已经存在,所以指定使用强制复制的模式
cp -f file1 file2
.将目录dir1复制成目录dir2
cp -R file1 file2
.同时将文件file1、file2、file3与目录dir1复制到dir2
cp -R file1 file2 file3 dir1 dir2
.复制时保留文件属性
cp -p a.txt tmp/
.复制时保留文件的目录结构
cp -P /var/tmp/a.txt ./temp/
.复制时产生备份文件
cp -b a.txt tmp/
.复制时产生备份文件,尾标 ~1~格式
cp -b -V t a.txt /tmp
.指定备份文件尾标
cp -b -S _bak a.txt /tmp
1.2.4mv文件重命名
【mv】命令
mv命令用来对文件或者目录重新名命,或将文件从一个目录移动到另一个目录
【mv】命令格式:
mv [选项]... [-T] 源文件 目标文件
或: mv [选项]... 源文件... 目录
或: mv [选项]... -t 目录 源文件...
【mv】命令选项参数:
-b:当文件存在时,覆盖前,为其创建一个备份
-f若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录
-i交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。这样可以避免误将文件覆盖。
-f -force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-u若目标文件已经存在,且 source 比较新,才会更新(update)
【mv】命令案例:
# mv 1.txt 2.txt //将文件1.txt名称修改成2.txt
# mv 1 1.txt //给文件增加后缀
# mv ../Document/* . //将document下的所有目录移动到当前目录
ls –l ../Document //用完后可以查看:
# mv 1.txt ../ //将文件移动到上一层目录中
1.2.5tar打包和解压缩
【tar】命令
tar命令位于/bin目录下,它能够将用户所指定的文件或者目录打包成一个文件,但不做压缩,一般linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以压缩命令压缩成xxx.tar.gz文件
【tar】命令参数:
-c:建立压缩文档
-v:显示所有运行过程的信息
-u:更新原压缩包中的文件
-f:使用档案名字,这是最后一个参数,后面只能接档案名
-z:调用gzip压缩命令进行压缩
-j:调用bz2压缩命令进行压缩
-Z:调用compress压缩命令进行压缩
-t:查看压缩文件的内容
-x:解压
-O:将文件解开到标准输出
-r:向压缩归档文件末尾追加文件
【tar】命令常用案例:
# tar –cf a.tar *.jpg //将所有jpg文件打成名为a.tar的包。
# tar –rf a.tar *.gif //将所有.gif的文件增加到a.tar的包中。
# tar –uf a.tar 1.fig //更新a.tar中的1.fig文件
# tar –tf a.tar //列出a.tar中的所有文件
# tar –xf a.tar //解压a.tar中的所有文件
# tar -cvf 1.tar dir /* //打包文件dir目录中的所有文件名称为1.tar
# tar –zcvf xxx.tar.fz ./* //.表示当前目录,打包并压缩
【tar】命令压缩:
# tar –cvf 1.tar *.jpg //将目录中所有的jpg打包成1.tar
# tar –czf 1.tar.gz *.jpg //将目录中所有的jpg打包成1.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为1.tar.gz
# tar –cjf 1.tar.bz2 *.jpg//将目录中所有的jpg打包成1.tar后,并且将其用bz2压缩,生成一个gzip压缩过的包,命名为1.tar.bz2
# tar –cZf 1.tar.Z *.jpg 将目录中所有的jpg打包成1.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为1.tar.Z
# rar 1.rar *.jpg //rar格式的压缩,需要先下载rar for linux
# zip 1.zip *.jpg //zip格式的压缩,需要先下载zip for linux
【tar】命令解压:
# tar –xvf file.tar 解压 tar包到当前目录
# tar -xzvf file.tar.gz 解压tar.gz
# tar -xjvf file.tar.bz2 解压 tar.bz2
# tar –xZvf file.tar.Z 解压tar.Z
# unrar e file.rar 解压rar
# unzip file.zip 解压zip
# tar -xvf xxx.tar.gz –C /usr/aaa //解压到指定的目录中,usr是根目录下的文件
# tar -xvf xxx.tar.gz – a/ //解压到a目录下。
1.2.6grep搜索工具
【grep】命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
【grep】命令语法格式
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
【grep】命令参数使用:
-a 或 --text : 不要忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 或 --count : 计算符合样式的列数。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的普通表示法来使用。
-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp : 将样式视为固定字符串的列表。
-G 或 --basic-regexp : 将样式视为普通的表示法来使用。
-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case : 忽略字符大小写的差别。
-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-q 或 --quiet或--silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages : 不显示错误信息。
-v 或 --revert-match : 显示不包含匹配文本的所有行。
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。
【grep】命令正则表达式
^ 如:^zhang,表示匹配所有以zhang开头的行。
$ 如:zhang$,表示匹配所有以zhang结尾的行。
. 匹配一个除换行符之外的字符,如:zha.g,匹配zha后接一个任意字符除换行符之外,然后是g。
* 匹配零个或多个先前字符,如:*zhang,匹配所有一个或多个字符后面紧跟grep的行。
.* 匹配任意一个字符出现零次或多次,结合在一起通常表示任意字符
[] 匹配一个指定范围内的字符,如:[zh]ang,匹配zang和hang。
[^] 匹配一个指定范围内的字符,如:[^A-DG-Z],匹配不包含A-D和G-Z字母开头的行
\(..\) 标记匹配字符,如'\(love\)',love被标记为1。
\< 锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\> 锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
\<...\> 匹配只包含括号里面的单词的行,如匹配\<zhangjunchao\>,zhangjunchao110这种不匹配。
x\{m\} 重复字符x,m次,如:'o\{5\}'匹配包含5个o的行。
x\{m,\} 重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\} 重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
\w 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
\W \w的反置形式,匹配一个或多个非单词字符,如点号句号等。
\b 单词锁定符,如: '\bgrep\b'只匹配grep。
【grep】命令常用案例
# grep test 1.txt //从1.txt中找出包含test字符的行
# grep –r test /etc/acpi //从/etc/acp目录及其子目录中找出包含了test的文件,并打印出该字符串所在行的内容。
# grep –v test 1.txt //查找1.txt中不包含test字符串的行
# grep –n root /etc/passwd //过滤关键字显示关键字在文本的行数
# grep –n table –color install.log //对关键字符串高亮显示
# grep –i table –color install.log //不区分大小写
#grep –v root –color /etc/passwd //反向取
# grep –A 2 table install.log //显示关键字行和后面的两行
# grep –B 2 table install.log //显示关键字和前面的两行
# ifconfig eth0 | grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" //匹配ip地址
# ifconfig eth0 | grep -E "([0-9]{1,3}\.){3}[0-9]"
将a.txt中不包含400的行输入到b.txt中,多个参数需要用到-E参数
# grep ‘.’ a.txt | grep –EV “400” > b.txt
# grep '.' a.txt | grep -Ev "(400|502|110|390)" > b.txt
# grep –R –n –color “Hostname” /usr/local/zabbix //递归查找
# grep –E –R –n –color “(Hostname|Server)” /usr/local/zabbix
-n:打印行号 –color:颜色 –R:递归查询 -E:支持扩展正则
# echo this is a txt line | grep –e “is” –e “line” –o//匹配前面的字符串,只输出匹配到的内容
-e:匹配多个匹配样式 -o:只输出匹配到的内容
# grep ‘table’ /root –lr //搜索多个文件查找匹配文本在那些文件中
#grep “main()” . –r –include *.{php,html} //只在目录中所有的.php和.html文件中递归搜索字符main()
# grep ”main()” . –r –exclude “README” //在搜索结果中排除所有README文件
# grep “main()” . –r –exclude-from filelist //在搜索结果中排除filelist文件列表里的文件
grep 使用多个查询条件
# grep ‘usrquota\ |usrquota’ /etc/fstab
# netstat –an | -e EST –e WAIT
#netstat –an | grep –E “ESTABLEISHED|WAIT” //E是大写,匹配条件一定要加引号
1.2.7vim编辑器
1.2.7.1【vi】命令概述
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。
1) 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode,按Esc进入命令行模式。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
按i、o、a进入到插入模式,大小写切换 shift+i
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
按:进入底行模式
1.2.7.2【vi】三种工作模式的切换v
命令行模式:
任何时候,按Esc进入命令模式
文本输入模式:
在命令模式下输入插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式,该模式下的内容都会被保存起来。
末行模式:
在命令模式下,按:进入末行模式,此时vi会在显示窗口的最后一行显示一个:
1.2.7.3【vi】进入vi编辑器
# vi filename
如果只输入vi而没有文件名称,这时候编辑的文件是没有文件名称的,会在退出的时候要求输入文件名并保存到磁盘中。
进入vi编辑器后,每一行前都有一个~符号,表示该行为空行。
最后一行也称之为状态行,显示当前正在编辑的文件名及其状态,如新文件显示[New File]
# vi +行号 文件名 例子:vi +5 1.txt
如果希望进入文件后,光标处于文件中特定的某行上,在命令上加上行号。
如何希望进入之后,光标定位在最后一行,就直接用+号。
# vi +/模式字符串 文件名 例子:# vi +/main 1.txt
vi编辑器支持模式匹配,用户可以指定一个模式串,进入vi后,光标处于指定的模式串行上。
取消高亮显示可以在末行输入 # :set mohlsearch
# vi *.txt
同时打开多个文件
1.2.7.4【vi】文本修改命令
i 命令将文本插入到光标所在位置前
I 将文本插入到当前的行首
a 将新文本追加到光标当前所在位置之后
A 将新文本追加到所在行的行尾
o 将在光标所在行的下面插入一个空行,并将光标置于该行的行首
O 将在光标所在行的上面耻辱一个空行,并将光标置于该行的行首
1.2.7.5【vi】文本删除命令
x 删除光标处的字符
若在 x 之前加上一个数字 n,则删除从光标所在位置开始向右的 n 个字符
X 删除光标前面的字符
在 X 之前加上一个数字 n,则删除从光标前面那个字符开始向左的 n 个字符
dd 删除光标所在的整行
在 dd 前可加上一个数字 n,表示删除当前行及其后 n-1 行的内容。
D或d$ 删除从光标所在处开始到行尾 的内容
d0 删除从光标前一个字符开始到 行首的内容
dw 删除一个单词
若光标处在某个词的中间,则从光标所在位置开始删至词尾。同 dd 命令一样,可在 dw 之前加一个数字n,表示删除 n 个指定的单词。
d( 删除到上一句开始的所有字符
d) 删除到下一句开始的所有字符
d{ 删除到上一段开始的所有字符
d} 删除到下一段开始的所有字符
d<CR> 删除包括当前行在内的两行字符,cr:表示回车
1.2.7.6【vi】文本复制命令
yy 复制光标所在的整行, 在 yy 前可加一个数字 n,表示复制当前行及其后 n-1 行的内容。
Y或者y$ 复制从光标所在处开始到行尾的内容
y0 复制从光标前一个字符开始到行首的内容
y(复制到上一句的开始
y) 复制到下一句的开始
y{复制到上一段的开始
y}复制到下一段的开始
y<CR>复制包括当前行在内的两行内容
yw 复制一个单词, 若光标处在某个词的中间,则从光标所在位置开始复制至词尾。同 yy 命令一样,可在 yw 之前加一个数字 n,表示复制 n 个指定的单词。
其他:
文本粘贴命令:p
文本选择命令:V
1.2.7.7【vi】撤销命令
可以撤销前一次的误操作或不合适的操作对文件造成的影响
u命令: 该命令撤销上一次所做的操作。多次使用 u 命令会一步一步依次撤销之前做过的操作(在一次切换到文本输入模式中输入的所有文本算一次操作)。
U命令:该命令会一次性撤销自上次移动到当前行以来做过的所有操作,再使用一次 U 命令则撤销之前的 U 命令所做的操作,恢复被撤销的内容。
1.2.7.8【vi】重复命令
可以让用户方便地再执行一次前面刚完成的某个复杂的命令。重复命令只能在命令模式下工作,在该模式下按.键即可。
案例:在编辑模式下输入一行数据,然后回到命令模式,按.执行相同的动作
1.2.7.9【vi】退出命令
:q 在末行模式下,输入命令,如果退出时当前编辑文件尚未保存,则vi不退出,而是继续等待用户命令,并且会在显示窗口的最末行说明如下信息:
no write since last chanage
:q! 在末行模式下,该命令不论文件是否改变都会强行退出Vi编辑器,此命令慎用。
:w 新文件名 在使用 w 命令时,可以再给当前编辑文件起一个新的文件名。这个功能相当于将该文件另存为为一个新的文件,保存之后使用:q命令退出 vi 编辑器,使用 ls 命令查看当前目录下的文件时, 会发现多了一个 test.c 文件,该文件的内容和 main.c 一致
:w! 新文件名 该命令与:w命令相同,所不同的是,即使指定的新文件存在,vi 编辑器也会用当前编辑文件对其进行替换,而不再询问用户。因此,此命令同样要慎用。
:w 111.txt
:wq vi 将先保存文件,然后退出 vi 返回到 shell。如果当前文件尚未取名,则需要现指定一个文件名。
:x 若当前编辑文件曾被修改过,则 vi 会保存该文件。否则 vi 直接退出,不保存该文件。
1.2.7.10【vi】字符替换命令
r 该命令将当前光标所指的字符替换为提供的字符。可以在该命令之前加上数字 n,表示将从当前字符开始的 n 个字符替换为提供的字符(如:4rb)
R 该命令会让vi进入replace模式,在此模式下,每个输入的字符都会替换当前光标下的字符,直到输入Esc结束该模式。
1.2.7.11【vi】光标移动命令
h 光标左移一个字符
j 光标下移一行
k 光标上移一行
l 光标右移一个字符
1.2.7.12【vi】按行移动光标
H 将光标移至当前屏幕的第 1 行,而不是整个文件的第 1 行。若在 H 命令之前加 上数字 n,则将光标移至第 n 行的行首
M 将光标移至屏幕显示文件的中间行的行首。即如果当前屏幕已经充满,则移动到整个屏幕的中间行;否则,移动到显示文本的那些行的中间行
L 将光标移至屏幕显示文件的最底行的行首。即如果文件内容需要超过一个屏幕显示时,该命令将光标移至屏幕上最底行的行首;否则该命令将光标移至文件最后一行的行首。可见,利用此命令可以快速准确地将光标移至屏幕底部或文件的最后一行。
G 在全文的范围内移动光标,此时的光标移动范围不再受屏幕的限制
1.2.7.13【vi】按字移动光标命令
w 和 W 命令将光标右移至下一个字的字首。这两个命令的区别在于:
w 命令所指的字是指英文单词、标点符号和非字母字符;
W 命令所指的字是指两个空格之间的任何内容。
如果光标起始位置处于字内,则 e 和 E 命令将把光标移到本字字尾;如果光标起始位置处于字尾,则 e 和 E 命令将把光标移动到下一个字的字尾。
e 和 E 命令的区别在于:
e 命令所指的字是指英文单词、标点符号和非字母字符;
E 命令所指的字是指两个空格之间的任何内容。
如果光标处于所在字内,则 b 和 B 命令将把光标移至本字字首;如果光标处于所在字字首,则 b 和 B 命令将把光标移到上一个字的字首。
两个命令的区别在于:
b 命令所指的字是指英文单词、标点符号和非字母字符;
B 命令所指的字是指两个空格之间的任何内容。
1.2.7.14【vi】段落移动光标
在 vi 编辑器中,一个段落被定义为是以一个空白行开始和结束的片段。按段落移动光标的命令有以下两种。
{命令:该命令将光标向前移至上一个段落的开头。
}命令:该命令将光标向后移至下一个段落的开头。
1.2.7.15【vi】文本移动命令
>命令:指定行的正文向右移动,如>6意思是自当前光标的行向下共6行文本向右移动8个空格。
<命令:与>命令相反
>>该命:令将光标所在行右移 8 个空格。如果在>>命令之前给出一个数字 n,例如 4,则表示光标当前行及其下面的 3 行(共4行)都右移 8 个空格。
<<命令:与>>相反
1.2.7.16【vi】文本跨行移动
imj 表示把第 i 行移至第 j 行的下方
1.2.7.17【vi】屏幕滚动命令
Ctrl+u 将屏幕向前(文件头方向)翻滚半屏
Ctrl+d 将屏幕向后(文件尾方向)翻滚半屏
Ctrl+f 将屏幕向文件尾方向翻滚一整屏
Ctrl+b 将屏幕向文件首方向翻滚一整屏
可以在滚屏和分页命令之前加上一个数字 n,表示屏幕向前或向后翻滚 n 行,或者屏幕向前或向后移动 n 页。这些设置会被 vi 编辑器记住,下次用户在使用滚屏和分页命令时,还会滚动和上次设置相同的行数或者页数。
1.2.7.18【vi】字符串检索命令
/String /命令从光标处开始向后寻找字符串 string。
?String ? 命令从光标处开始向前寻找字符串 string。
n 重复上一条检索命令
/String 检索 string。g/命令使光标停止在第一个检索到的 string 串的行首
1.2.7.19【vi】字符串替换命令
在末行模式下可以使用替换命令:
[range]s/s1/s2/ [option] 案例:1,10s/a/b/g 再文本中全局搜索将1,10中所有的b字符串替换成a字符串
[range] 表示检索范围,省略时表示当前行。
1,10表示从第 1 行到 10 行。
%表示整个文件,同1, $。
. ,$从当前行到文件尾。
s 为替换命令。
s1 要被替换的串,s2 为替换的串。
option 表示选项: /g表示在全局文件中进行替换。/c表示在每次替换之前需要用户进行确认。
省略时仅对每行第一个匹配串进行替换。
\<word 替换以 word 开始的单词的 word 部分
%s/\<abc/cde 将以 abc 开头的单词替换为以 cde 开头。
1.2.7.20【vi】窗口切换命令
Ctrl+w+ j 移动光标到下面的一个窗口
Ctrl+w+ k 移动光标到上面的一个窗口
Ctrl+w+q 关闭当前窗口
Ctrl+w+ w 移动光标到另一个窗口
1.2.7.21【vi】属性设置命令
:set nu (nonu) 该命令显示行号(或者不显示行号)。
:set hlsearch (nohlsearch) 该命令设定搜寻字符串反白显示
:set autoindent 该命令显示程序语法自动缩进
:set backup(nobackup) 该命令自动储存备份文件(或者不自动备份文件)。
:set all 该命令显示所有的选项。
:syntax on (off) 该命令实现程序语法高亮显示(或者不高亮显示)。
:set ignorecase(noignorecase) 该命令忽略大小写(或者区分大小写)。
所有的命令都需要在末行模式下输入
2jdk的安装
2.1卸载openJDK
默认的linux环境中安装了openJDK,我们需要卸载该jdk并安装sun公司为我们提供里的JDK
RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat额标志,但是其原始设计理念是开发式的,现在包括openlinux,S.u.S.E以及Tubo Linux等linux的分发版本都有采用,算是公认的行业标准
rpm –qa 查看所有安装的软件信息
- -- nodeps不验证软件包的依赖
- - 删除软件
rpm –qa | grep java 查看和java相关的包
卸载openjdk
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.i686
卸载之后的结果:
2.2创建JDK环境
先进入到/user/local目录并在这里目录中创建对应的java目录
2.3上传文件到linux
为了文件的传送方便,我们使用Filezilla工具童linux建立连接,并提供可用的图形化界面,实现拖拽式上传文件,效果如下:
2.4解压tar.gz文件
先需要在网络坏境下配置相关依赖:
yum install glibc.i686//安装依赖文件,询问is this ok :y
tar –xvf jdk-7u72-linux-i586.gz.tar.gz –C/usr/local/java//将制定的jdk压缩包解压到指定的文件目录中。
此时去看java中的目录,会发现已经有相关的jdk文件了。
但是此时通过java –version命令还是查询不到jdk的配置信息
2.5配置jdk的环境变量
# vim /etc/profile //编辑etc下的profile文件,将下面的文件拷贝到该文件中
#set java environment
JAVA_HOME=/usr/local/java/jdk1.8.0_311
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
此时依旧是查询不到jdk的版本信息,需要重新加载profile文件。
# source /etc/profile
3总结
今天的分享就到这里,mysal等安装都异曲同工,所以就不一样介绍了!