码迷,mamicode.com
首页 > 系统相关 > 详细

Linux学习篇之shell编程基础

时间:2016-08-06 14:29:45      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:linux

设置环境变量:

① export 变量名=变量值   #设置环境变量

② 变量名=变量值    #设置环境变量

   export 变量名

set   #显示当前shell所有变量

env   #查看环境变量

unset 变量名  #删除变量


常用环境变量:

PATH变量:系统查找命令的路径

echo $PATH    #查看PATH的值

PATH="$PATH":/root/sh   #将/root/sh目录加到PATH变量中(临时生效)


PS1变量:命令提示符变量


当前语系查询:

locale   #查询当前语系(en_US.UTF-8/zh_CN.UTF-8)

LANG:定义系统主语系的变量

LC_ALL:定义整体语系的变量

/etc/sysconfig/i18n   #语系配置文件


位置参数变量:

$n   #n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要大括号包含,如${10}

$*   #这个变量代表命令行中所有参数,$*把所有的参数看成一个整体

$@   #这个变量也代表命令行所有参数,不过$@把每个参数区分对待

$#   #这个变量代表命令行所有参数个数


预定义变量:

$?   #最后一次执行的命令的返回状态,上一个命令正确执行变量值为0,上一个命令执行不正确变量值为非0

$$   #当前进程的进程号(PID)

$!   #后台运行的最后一个进程的进程号(PID)


接收键盘输入:

read [选项] [变量名]

-p:提示信息

-t:秒数,指定等待时间

-n:字符数,接收指定字符数就会执行

-s:隐藏输入的数据,适用于机密信息输入

read -p "please input your name:" -t 30 name

echo $name


declare声明变量类型:

declare [+/-][选项] 变量名

-:给变量设定类型属性

+:取消变量的类型属性

-a:将变量声明为数组型

-i:将变量声明为整数型

-x:将变量声明为环境变量

-r:将变量声明为只读变量

-p:显示指定变量的被声明的类型


数值运算:

① aa=11;bb=22;dd=$(expr $aa + $bb);echo $dd    #dd为33

② aa=11;bb=22;dd=$(($aa+$bb));echo $dd    #dd为33

③ aa=11;bb=22;dd=$[$aa+$bb];echo $dd    #dd为33


环境变量配置文件:

~/.bash_logout    #注销时执行的配置文件

~/.bash_history   #历史命令保存文件

/etc/issue   #本地终端登录信息显示文件

/etc/motd   #本地登录、远程登录,只有登录成功便会显示此文件内容


正则表达式:

正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配,grep、awk、sed、等命令可以支持正则表达式

通配符用来匹配符合条件的文件名,通配符是完全匹配,ls、find、cp、这些命令不支持正则,可用通配符

*:前一个字符匹配0次或任意多次

.:匹配除了换行符外任意一个字符

^:匹配行首,例如^hello匹配以hello开头的行

$:匹配行尾

[ ]:匹配括号中任意一个字符,只匹配一个字符

[^ ]:匹配除中括号的字符以外的任意一个字符

\{n\}:表示其前面的字符恰好出现n次,例如[0-9]\{4\}匹配4位数字

\{n,\}:表示前面的字符出现不小于n次,例如[0-9]\{2,\}表示两位及以上数字

\{n,m\}:表示前面的字符至少出现n次,最多出现m次[a-z]\{6,8\}匹配6到8位的小写字母


字符截取命令:

cut命令:

cut [选项] 文件名

-f 列号:提取第几列

-d 分隔符:按照指定分隔符分割列(默认分隔符tab键)

grep "/bin/bash" /etc/passwd | grep -v "root" | cut -f 1 -d ":"   #查询系统中的普通用户

cut -d ":" -f 1,3 /etc/passwd


awk命令:

awk ‘条件1{动作1}条件2{动作2}...‘ 文件名

df -h | awk ‘{print $1 "\t" $3}‘   #截取第一和第三列

cat /etc/passwd | grep /bin/bash | awk ‘BEGIN{FS=":"}{print $1 "\t" $3}‘

#FS为指定分割符


sed命令:(对文件进行追加、插入、替换、删除、显示)

字符处理命令:

sort [选项] 文件名    #排序命令

-f:忽略大小写

-n:以数值型进行排序,默认使用字符串型排序

-r:反向排序

-t:指定分割符,默认分隔符为制表符

-k n[,m]: 按照指定的字段范围排序,从第n字段开始,m字段结束(默认到行尾)

sort -n -t ":" -k 3,3 /etc/passwd   #按照第3个字段以数值型排序

wc [选项] 文件名

-l:只统计行数

-w:只统计单词数

-m:只统计字符数

wc -l /etc/passwd   #统计行数


本文出自 “We_Need_To_Try” 博客,请务必保留此出处http://liuxiao255.blog.51cto.com/10551403/1835007

Linux学习篇之shell编程基础

标签:linux

原文地址:http://liuxiao255.blog.51cto.com/10551403/1835007

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!