首页 > 代码库 > shell 学习记录一
shell 学习记录一
1、一般用户的命令提示符是 $ root 的命令提示符是 #
2、在bash中每个命令之间都是通过 分号或者换行符来分割的例如
$ cmd1 ; cmd2
3、echo 每次调用后默认会添加换行符,后面的内容可以用 单引号,也可以用双引号,也可以不用引号。区别是
使用不带单引号的echo时 没法显示 “;”变量在单引号中也无效,变量一般加双引号
双引号中不能打印特殊符号,需要用转义符号
4、echo -e "\e[1;31m 这里是内容 [0m " 这表示显示彩色字体,30,31,32,33,34,35,36,37 分别表示 黑色,红色,绿色,***,蓝色。。。。
5、echo -e "\e[1;41m 这里是内容 [0m" 这表示显示彩色背景 40,41,42.43,44,分别表示黑色,红色,绿色,***。。。。
6、printf 可以进行格式化输出,需要手动输入换行
printf "%-5s %-10s %-4.2s\n" NO NAME Mark 表示设置宽度分别为 5个,10个字符,4.2 表示可以保留两位小数 ,-表示左对齐,\n表示换行
7、如果要在PATH中添加一条新路径,使用:export PATH="$PATH:/home/usr/bin" 也可以用 如下
PATH=$PATH:/home/usr/bin
export $PATH
8、uid 可以获取用户的id号 ,可以直接用 echo $UID 查看。root用户的uid是 0
9、可以用shell来进行数字运算
方法1、用let,变量名前不需要加$
no1=1;
nod2=2;
let result=nod1+nod2
nod自加操作 let nod1++ 自减 let nod1--
let no+=6 和 let no=no+6 是一样的意思
方法2、result=$[ nod1 + nod2 ] 或者 result=$[ $nod1 + 5 ]
方法3、result=$(( nod1 + nod2 )) 或者 result=$ (( $nod1 + 5))
方法4、result=`expr 3 + 4` 或者 result=$(expr $nod1 + 5) 以上计算方法均不支持浮点数
方法5、result=`echo "scale=3; $nod1/$nod2" |bc`
利用bc进行小数计算,scale表示小数点的位数
echo "obase=10;ibase=2;100" |bc
将二进制的100转换成十进制
10、文件描述及重定向
0 --- stdin (标准输入)
1 ----- stdout (标准输出)
2----- stderr (标准错误)
cmd 2> error.txt 将错误全部重定向至error.txt
cmd 2>&1 all.txt 将所有输重定向至all.txt 等于 cmd &> all.txt
11、数组
arry_var=(1 2 3 4 5 6)
打印出特定数组的元素 echo ${arry_var[1]} 其值为 2
列出数组中的所有值 echo ${arry_var[*]} 结果为 1 2 3 4 5 6
12、关联数组
declare -A fruites_value
fruits_value=http://www.mamicode.com/([apple]=‘10yuan‘ [orange]=‘15yuan‘)
显示特定数组内容 echo ${fruits_value[apple]} 结果为 10yuan
列出所有索引列表 echo ${!fruits_value[*]}
本文出自 “如果技术可以做成艺术!” 博客,请务必保留此出处http://jesus110.blog.51cto.com/376008/1575676
shell 学习记录一