龙空技术网

Linux_shell_经常使用的命令

feifeifei 1103

前言:

今天各位老铁们对“linux设置编码utf8”大约比较关注,姐妹们都需要学习一些“linux设置编码utf8”的相关文章。那么小编也在网络上汇集了一些对于“linux设置编码utf8””的相关文章,希望看官们能喜欢,姐妹们一起来学习一下吧!

当前路径

	CURR_DIR=$(cd "$(dirname $0)"; pwd)
{str}应用
{str#*/}	echo ${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} 计算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{print cols} 

例子:

cat cols_info | awk -F ' ' '{if(NR==1) {cols=$1} else{cols=cols","$1}} END{print cols}
awk中传递shell变量
## '${xy}'是变量echo $item | awk -F ',' '{print "'${xy}' "$0}' 
传递转义字符
echo $item | awk -F ',' '{print "\t\t"$0}' 
sed传递shell变量

语法:

sed -i 's/需替换内容/'"${变量名}"'/g' pgExpInsertSql.tmp注意: 替换的变量写法规范 单引号+双引号+tab+双引号+单引号

例子:

sed -i 's/pg_insert_sql/'"${tab}"'/g' pgExpInsertSql.tmp
sed匹配任意字符

匹配任意字母,后跟任意字母的0次或多次重复,并以ing结尾,模式为/ . * ing/。可以使用 这个模式查询以ing结尾的任意单词。

sed -n '/.*ing/'p quote.txt
tr替换 [ 或 ]

语法:

echo ‘ | tr '[' '+' 

例子:

echo $item | tr '[' '+' | sed 's/+//g'
查看物理内存的信息

查看总值

free -m | grep Mem | awk '{print $2}'

查看已使用的值

free -m | grep Mem | awk '{print $3}'
查看文件夹的大小
du –sh 全路径文件夹的名字
查看各个分区的使用情况
df –h
列出分区
fdisk –l 
别名的使用

定义

alias 别名='命令语句'

例子

alias mkdir_day='mkdir `date +%Y%m%d`'alias cd_day='cd `date +%Y%m%d`'

使用

和ls一样的使用方法

取消别名

unalias 别名
修改系统时间

修改年月日

Date –s 20150808

修改具体时间

Date –s 08:15:00

修改年月日时分秒

date -s "20150928 16:14:00"

获取格式化时间

date +"%Y%m%d %H:%M:%S"
{}的运用
创建log,ctl,etc三个文件夹mkdir /home/gploader/{log,ctl,etc}/
split的运用

语法:

split -a 10 -d -l 100000 原始文件名  目标文件的前半部分(后半部分会自动生成)

解释:

	-a 10 表示后缀长度为10	-d   表示后缀用数字表示	-l 10000 表示将文件按每10000行记录切分成n个文件

例子:

split -a 10 -d -l 100000 bs.bcp  INDEXLEVEL_1_1_STATICSITE_1_
判断文件是否存在
	tmp=”文件的路径”	if [ -f $tmp ];then		echo "存在"	else		echo "不存在!!"		exit;	fi
判断字符串是否相等
	if [ "${res}" == "${res2}" ];then		echo "相等"	else		echo "不相等"		exit	fi
显示指定字符串的颜色

语法:

echo –e  "\e[1;31m test \e[0m"

参数说明:

重置0,黑色30,红色31,绿色32,黄色33,蓝色34,洋红35,青色36,白色37
函数的传参

函数定义:

function func(){	echo $1	echo $2	…}

函数调用:

func 参数1 参数2 …显示结果:	Nihao
遍历文件
	while read item	do	echo "$item begin "	done < 文件
FOR循环使用
	for((i=0;i<10000;i++));do  	cat mode.bcp >> 1_1_1_trappers_1_1.bcp; 	done;
if分支中and和or的使用

if分支中and的使用

	if [ "$area1"x == "create--table"x  -a  "$area3"x == "("x ]     then		echo "hello"	fi

if分支中or的使用

	if [ "$area1"x == "create--table"x  -o  "$area3"x == "("x  ]	then		echo "hello"	fi
if中字符串的比较

字符串相等为真

	if [  $str  =  $str2 ];then		echo "hello"	fi

字符串不等为真

	if [  $str  != $str2 ];then		echo "hello"	fi
字符串长度大于0时为真
	if [ -n $str];then		echo "hello"	fi
字符串长度为0时为真
	if [ -z $str ];then		echo "hello"	fi
字符串非空时为真
	if[ $str ];then		echo "hello"	fi
if中数字的比较

数字相等时为真

	if[ $int1 –eq $int2 ];then		echo "hello"	fi

数字不等时为真

	if[ $int1 –ne $int2 ];then		echo "hello"	fi# int1大于int2时为真	if[ $int1 –gt $int2 ];then		echo "hello"	fi# int1大于等于int2时为真	if[ $int1 –ge $int2 ];then		echo "hello"	fi# int1小于int2时为真	if[ $int1 –lt $int2 ];then		echo "hello"	fi# int1小于等于int2时为真	if[ $int1 –le $int2 ];then		echo "hello"	fi
if中文件的比较

文件可读时为真

	if[ -r $file ];then		echo "hello"	fi

文件可写时为真

	if[ -w $file ];then		echo "hello"	fi

文件可执行时为真

	if[ -x $file ];then		echo "hello"	fi

文件为正规文件时为真

	if[ -f $file ];then		echo "hello"	fi

文件为目录时为真

	if[ -d $file ];then		echo "hello"	fi

文件大小非0时为真

	if[ -s $file ];then		echo "hello"	fi
数字的加法减法

expr方法

		h=`expr $a - 1`		或	    h=$(expr 1 + 2)

let方法(“+”中间不能有空格)

		let l=$a+1
tar

解压(将delete.tar.gz解压当前的目录下)

	tar zxvf delete.tar.gz ./

压缩(将当前目录下的txt压缩成delete.tar.gz)

	tar zcvf delete.tar.gz  ./*.txt
LINUX退格^H

实现步骤

	1.备份 	cp ~/.bash_profile ~/.bash_profile.bak	2.将指令写入.bash_profile	echo 'stty erase ^H' >>  ~/.bash_profile	3.使文件在系统中生效	source   ~/.bash_profile
查找文件或目录

语法:

	locate 查找内容 注意:	*表示任意字符	?表示一个字符

实现逻辑:

	在一个保存了硬盘上目录结构及文件名的数据库中查找,也是因为这个原因对于刚新增,修改,删除的文件和目录,locate可能无法查到,这时需要使用updatedb更新数据库后,就可以查找了
find查找命令

查找/share目录以及子目录下以”D”和”M”开头的文件或目录,”-o”表示前后两个条件中满足一个就显示

	find /share –name D* -o M*

查找/boot目录以及子目录中所有以”.conf”结尾的文件,并把这些文件复制到/tmp目录

	find /boot –name *.conf –exec cp {} /tmp \;
查看文件的行数
	cat 文件名 | wc –l
查看文件的大小
	du –sh 文件名
模糊匹配出文件,并打包成tar包

方法

tar zcvf 名字.tar.gz $(grep -l "模糊匹配内容" 模糊匹配的文件)

例子

tar zcvf tr.tar.gz $(grep -l "#" *)
vim配置文件(vimrc)设定

描述

vimrc文件是vim环境设置文件。整体的vim设置在/etc/vimrc文件中。不建议修改/etc/vimrc文件,每个用户可以在用户根目录中设置vim,新建~/.vimrc

常用配置:

:set all                        查看所有选项:set nu/nonu                    显示行数:set wrap/nowrap                是否换行:set hlsearch/nohlsearch        搜索是否高亮显示:set autoindent/noautoindent    是否自动缩排:syntax on:syntax off                     程序语法开关:set bg=dark                    显示颜色色调:set bg=light                   显示颜色色调:set tabstop=4                  tab为4个空格
tee命令

描述:

正确的和错误的执行打印在控制台的信息追加一份到文件中

命令:

[command] 2>&1 | tee -a [file]

例子:

echo hello 2>&1 | tee -a 1.log
linux下字符编码的转换

将gbk格式的文件转成utf-8格式

iconv -f gbk -t utf-8 "源文件" -o "目标文件"

将utf-8格式的文件转成gbk格式

iconv -f gbk -t utf-8 "源文件" -o "目标文件"

标签: #linux设置编码utf8