Linux_shell_经常使用的命令

2024-03-18
当前路径
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"fi
if中字符串的比较

字符串相等为真

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"fi
if中数字的比较

数字相等时为真

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"fi
if中文件的比较

文件可读时为真

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+1
tar

解压(将解压当前的目录下)

/

压缩(将当前目录下的txt压缩成)

/*.txt
LINUX退格^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"目标文件"

参考资料

标签: