第一章:shell特殊字符
来源:互联网 发布:mac怎么用vpn 编辑:程序博客网 时间:2024/06/02 06:58
学习shell其实是很简单的,只要你找到一份好的资料。下面就是我学习shell整理的笔记和实验,分享出来。
一是 自己有时候忘了命令可以查,
二是 想学习shell的同学可以参考参考。后面还有系列的几篇笔记,练习操作一遍就差不多了。
打印命令 echo
[oracle@zw-test-db ~]$ echo hello world
hello world
[oracle@zw-test-db ~]$ echo "hello world"
hello world
[oracle@zw-test-db ~]$ echo 'hello world'
hello world
[oracle@zw-test-db ~]$ echo 'hello ! world'
hello ! world
printf
[oracle@zw-test-db ~]$ printf "hello world"
hello world[oracle@zw-test-db ~]$ printf "hello world"
echo 中转义字符
[root@zw-test-db /]# echo -e "1\t2\t3"
1 2 3
打印彩色输出
[root@zw-test-db /]# echo -e "\e[1;31m this is red text \e[0m"
this is red text
[root@zw-test-db /]# echo -e "\e[1;42m green background \e[0m"
green background
环境变量:
pgrep查看oracle的进程id
[root@zw-test-db /]# pgrep ora
9187
9189
9191
9195
9197
9199
9201
9203
9205
9207
9209
打印进程9207 的环境变量
[root@zw-test-db /]# cat /proc/9207/environ
HOSTNAME=zw-test-dbSHELL=/bin/bashTERM=xtermHISTSIZE=1000QTDIR=/usr/lib64/qt-3.3QTINC=/usr/lib64/qt-3.3/includeUSER=oracleLS_COLORS=rs=0:di=01;
实战演练:
[root@zw-test-db /]# var=value --给变量赋值
[root@zw-test-db /]# echo $var
value
或者
[root@zw-test-db /]# echo ${var}
value
[root@zw-test-db oradata]# vim a.sh
#!/bin/bash
# file name : a.sh
fruit=apple
count=5
echo "we have $count ${fruit}(s)"
[root@zw-test-db oradata]# sh a.sh
we have 5 apple(s)
export命令设置环境变量:
[oracle@zw-test-db ~]$ echo $PATH
/u01/app/oracle/product/11.2.0.4/db_1/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin
补充内容
1.获得字符串长度
[oracle@zw-test-db ~]$ echo ${#var}
6
2.查看当前shell版本
[oracle@zw-test-db ~]$ echo $SHELL
/bin/bash
[oracle@zw-test-db ~]$ echo $0
-bash
3.检查是否是超级用户
root用户的uid是0
if[$UID -ne 0];then
echo Non root user.Please run as root.
else
echo "you are root"
fi
shell 进行数学计算
let命令可以进行计算
#!/bin/bash
no1=1
no2=2
let result1=no1+no2
let result2=no2-no1
echo $result1,$result2
[oracle@zw-test-db ~]$ sh a.sh
3,1
自加操作 let no1++
自减操作 let no1--
简写形式 let no+=6 等于 let no=no+6
let no-=6 等于 let no=no -6
其他方法:
result=$[no1+no2]
expr也可用于基本操作
[oracle@zw-test-db ~]$ result=`expr 3+4`
[oracle@zw-test-db ~]$ echo $result
3+4
[oracle@zw-test-db ~]$ result=`expr 3 + 4`
[oracle@zw-test-db ~]$ echo $result
7
注意:要有空格
bc: 支持浮点计算
[oracle@zw-test-db ~]$ echo " 4 * 0.56 " |bc
2.24
[oracle@zw-test-db ~]$ no=54
[oracle@zw-test-db ~]$ result=`echo "$no * 1.5 "|bc`
[oracle@zw-test-db ~]$ echo $result
81.0
文件描述符和重定向
0 stdin:输入
1 stdout:输出
2 stderr: 错误
将输出文本重定向保存到另外一个文件
[oracle@zw-test-db ~]$ echo " this is a sample text 1" > aaa.txt
[oracle@zw-test-db ~]$ cat aaa.txt
this is a sample text 1
[oracle@zw-test-db ~]$ echo " this is a sample text 2" >> aaa.txt
[oracle@zw-test-db ~]$ cat aaa.txt
this is a sample text 1
this is a sample text 2
>> 是在原来的文件里面追加
> 先清空源文件,再写
[oracle@zw-test-db ~]$ chmod 000 a.txt
[oracle@zw-test-db ~]$ cat *.txt
cat: a.txt: Permission denied --没有权限
bbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccc
[oracle@zw-test-db ~]$ cat *.txt2> err.log
bbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccc
0 stdin:输入
1 stdout:输出
2 stderr: 错误
[oracle@zw-test-db ~]$ cat err.log
cat: a.txt: Permission denied
提示输入到log里面了
终端打印同时重定向输入到新文件
[oracle@zw-test-db ~]$ cat *.txt |tee err2.log|cat -n
cat: a.txt: Permission denied
1 bbbbbbbbbbbbbbbbbbb
2 cccccccccccccccccccccccc
cat -n 加上行号了
[oracle@zw-test-db ~]$ cat err2.log
bbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccc
[oracle@zw-test-db ~]$ cat *.txt |tee-a err2.log |cat -n
cat: a.txt: Permission denied
1 bbbbbbbbbbbbbbbbbbb
2 cccccccccccccccccccccccc
[oracle@zw-test-db ~]$ cat err2.log
bbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccc
bbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccc
-a追加
[]方括号也能计算
[root@zw-test-db ~]# var=$[5-2]
[root@zw-test-db ~]# echo $var
3
[root@zw-test-db ~]# var=$[5*2]
[root@zw-test-db ~]# echo $var
10
find /u01/ -name "*.log" -mtime +5 -exec rm {} \; --删除/u01目录下五天内没有修改的*.log文件
退出脚本
linux提供了$? 保存上个命令的状态码。
[root@zw-test-db ~]# date
Fri Jul 1 11:13:39 CST 2016
[root@zw-test-db ~]# echo $?
0
一个成功结束的命令退出状态码是0,如果命令结束有错误,退出状态码中就会有一个正数值
[root@zw-test-db ~]# zhengwei
-bash: zhengwei: command not found
[root@zw-test-db ~]# echo $?
127
状态码:
0 成功
1 通用未知错误
2 误用shell命令
126 命令不可执行
127 没找到命令
128 无效退出参数
128+x linux信号x的严重错误
130 通过ctrl+c终止
255 退出状态码越界
exit命令
0 0
- 第一章:shell特殊字符
- shell 特殊字符
- Shell中的特殊字符
- Shell命令特殊字符
- shell中的特殊字符
- Shell 特殊字符
- Shell命令特殊字符
- shell的特殊字符
- shell特殊字符
- Linux Shell特殊字符
- Shell命令特殊字符
- shell特殊字符详解
- shell的特殊字符
- shell特殊字符总结
- shell 特殊字符
- shell中的特殊字符
- shell的特殊字符
- shell的特殊字符
- Android app借助第三方软件打开pdf文档
- Maven学习 (四) 使用Nexus搭建Maven私服
- 获取当前显示页面的Activity名字命令
- 计算该日在本年中是第几天
- 画板(CAShapeLayer实现)
- 第一章:shell特殊字符
- 数据库的三大范式
- svn 出错:Previous operation has not finished; run 'cleanup' if it was interrupted
- VR开发教程之Unity3d开发入门教程
- Maven学习 (五) Elipse中发布一个Maven项目到Tomcat
- Oracle的substr函数简单用法 substr(字符串,截取开始位置,截取长度
- 11 款 React Native 开源移动 UI 组件
- 17、gcc的__builtin_函数介绍
- 交叉验证在sklearn中的实现