CURR_DIR=$(cd"$(dirname$0)";pwd){str}应用
{str*/}删除第一个/及其左边的数据{str*/}echo${str*/}删除最后一个/及其左边的数据{str%/*}echo${str%/*}删除最后一个/及其右边的数据{str%%/*}echo${str%%/*}删除第一个/及其右边的
记忆方法
键盘上表示左边,%表示右边,单个*表示最少匹配,**表示最多匹配{str:n1:n2}
${str:0:5}从第0个字符之后取5个${str:5:6}从第5个字符之后取6个{str/cisco/h3c}
${str/cisco/h3c}将第一个cisco替换为h3c${str//:/-}将所有的:替换为-{str}计算str的长度{!}的功能
!/bin/sha=123b=aecho${b}echo${!b}取awk中的最后一个域
ls`pwd`/csv/*|awk-F'/''{print$NF}'awk中的if语句
语法:
awk-F'''{if(NR==1){cols=$1}else{cols=cols","$1}}END{printcols}
例子:
catcols_info|awk-F'''{if(NR==1){cols=$1}else{cols=cols","$1}}END{printcols}awk中传递shell变量
'${xy}'是变量echo$item|awk-F',''{print"'${xy}'"$0}'传递转义字符
echo$item|awk-F',''{print"\t\t"$0}'sed传递shell变量
语法:
sed-i's/需替换内容/'"${变量名}"'/g'注意:替换的变量写法规范单引号+双引号+tab+双引号+单引号
例子:
sed-i's/pg_insert_sql/'"${tab}"'/g'sed匹配任意字符
匹配任意字母,后跟任意字母的0次或多次重复,并以ing结尾,模式为/.*ing/。可以使用这个模式查询以ing结尾的任意单词。
sed-n'/.*ing/'tr替换[或]
语法:
echo‘|tr'[''+'
例子:
echo$item|tr'[''+'|sed's/+//g'查看物理内存的信息
查看总值
free-m|grepMem|awk'{print$2}'
查看已使用的值
free-m|grepMem|awk'{print$3}'查看文件夹的大小
du–sh全路径文件夹的名字查看各个分区的使用情况
df–h列出分区
fdisk–l别名的使用
定义
alias别名='命令语句'
例子
aliasmkdir_day='mkdir`date+%Y%m%d`'aliascd_day='cd`date+%Y%m%d`'
使用
和ls一样的使用方法
取消别名
unalias别名修改系统时间
修改年月日
Date–s20150808
修改具体时间
Date–s08:15:00
修改年月日时分秒
date-s"2015092816:14:00"
获取格式化时间
date+"%Y%m%d%H:%M:%S"{}的运用
创建log,ctl,etc三个文件夹mkdir/home/gploader/{log,ctl,etc}/split的运用
语法:
split-a10-d-l100000原始文件名目标文件的前半部分(后半部分会自动生成)
解释:
-a10表示后缀长度为10-d表示后缀用数字表示-l10000表示将文件按每10000行记录切分成n个文件
例子:
_1_1_STATICSITE_1_判断文件是否存在
tmp=”文件的路径”if[-f$tmp];thenecho"存在"elseecho"不存在!!"exit;fi判断字符串是否相等
if["${res}"=="${res2}"];thenecho"相等"elseecho"不相等"exitfi显示指定字符串的颜色
语法:
echo–e"\e[1;31mtest\e[0m"
参数说明:
重置0,黑色30,红色31,绿色32,黄色33,蓝色34,洋红35,青色36,白色37函数的传参
函数定义:
functionfunc(){echo$1echo$2…}
函数调用:
func参数1参数2…显示结果:Nihao遍历文件
whilereaditemdoecho"$itembegin"done文件FOR循环使用
for((i=0;i10000;i++));_1_1_trappers_1_1.bcp;done;if分支中and和or的使用
if分支中and的使用
if["$area1"x=="create--table"x-a"$area3"x=="("x]thenecho"hello"fi
if分支中or的使用
if["$area1"x=="create--table"x-o"$area3"x=="("x]thenecho"hello"fiif中字符串的比较
字符串相等为真
if[$str=$str2];thenecho"hello"fi
字符串不等为真
if[$str!=$str2];thenecho"hello"fi字符串长度大于0时为真
if[-n$str];thenecho"hello"fi字符串长度为0时为真
if[-z$str];thenecho"hello"fi字符串非空时为真
if[$str];thenecho"hello"fiif中数字的比较
数字相等时为真
if[$int1–eq$int2];thenecho"hello"fi
数字不等时为真
if[$int1–ne$int2];thenecho"hello"fiint1大于等于int2时为真if[$int1–ge$int2];thenecho"hello"fiint1小于等于int2时为真if[$int1–le$int2];thenecho"hello"fiif中文件的比较
文件可读时为真
if[-r$file];thenecho"hello"fi
文件可写时为真
if[-w$file];thenecho"hello"fi
文件可执行时为真
if[-x$file];thenecho"hello"fi
文件为正规文件时为真
if[-f$file];thenecho"hello"fi
文件为目录时为真
if[-d$file];thenecho"hello"fi
文件大小非0时为真
if[-s$file];thenecho"hello"fi数字的加法减法
expr方法
h=`expr$a-1`或h=$(expr1+2)
let方法(“+”中间不能有空格)
letl=$a+1tar
解压(将解压当前的目录下)
/
压缩(将当前目录下的txt压缩成)
/*.txtLINUX退格^H
实现步骤
1.备份cp~/.bash_profile~/.bash_将指令写入.bash_profileecho'sttyerase^H'~/.bash_profile3.使文件在系统中生效source~/.bash_profile查找文件或目录
语法:
locate查找内容注意:*表示任意字符?表示一个字符
实现逻辑:
在一个保存了硬盘上目录结构及文件名的数据库中查找,也是因为这个原因对于刚新增,修改,删除的文件和目录,locate可能无法查到,这时需要使用updatedb更新数据库后,就可以查找了find查找命令
查找/share目录以及子目录下以”D”和”M”开头的文件或目录,”-o”表示前后两个条件中满足一个就显示
find/share–nameD*-oM*
查找/boot目录以及子目录中所有以”.conf”结尾的文件,并把这些文件复制到/tmp目录
find/boot–name*.conf–execcp{}/tmp\;查看文件的行数
cat文件名|wc–l查看文件的大小
du–sh文件名模糊匹配出文件,并打包成tar包
方法
tarzcvf名字.$(grep-l"模糊匹配内容"模糊匹配的文件)
例子
$(grep-l"#"*)vim配置文件(vimrc)设定
描述
vimrc文件是vim环境设置文件。整体的vim设置在/etc/vimrc文件中。不建议修改/etc/vimrc文件,每个用户可以在用户根目录中设置vim,新建~/.vimrc
常用配置:
:setall查看所有选项:setnu/nonu显示行数:setwrap/nowrap是否换行:sethlsearch/nohlsearch搜索是否高亮显示:setautoindent/noautoindent是否自动缩排:syntaxon:syntaxoff程序语法开关:setbg=dark显示颜色色调:setbg=light显示颜色色调:settabstop=4tab为4个空格tee命令
描述:
正确的和错误的执行打印在控制台的信息追加一份到文件中
命令:
[command]21|tee-a[file]
例子:
echohello21|linux下字符编码的转换
将gbk格式的文件转成utf-8格式
iconv-fgbk-tutf-8"源文件"-o"目标文件"
将utf-8格式的文件转成gbk格式
iconv-fgbk-tutf-8"源文件"-o"目标文件"
参考资料
标签: