目录
一、echo
1.1 echo
1.2 打印彩色文本
1.3 打印彩色背景
二、printf
三、变量和环境变量
3.1 查看某个进程的环境变量
3.2给变量赋值。var=value
3.3 给环境变量赋值
3.4 获取变量的长度
3.5 识别当前所使用的shell
3.6 检查是否为超级用户
四、数学运算
4.1 let 相加运算
4.2 [] 相加运算
4.3 (())相加运算
4.4 expr 相加运算
4.5 bc工具
五、文件描述符和重定向
六、数组和关联数组
七、使用别名
八、获取终端信息
九、日期和延时
十、函数
十一、测试
一、echo
1.1 echo
echo "welcome to chongqing"
echo 'welcome to chongqing'
echo welcome to chongqing
echo -e "1\t2\t3" # 可以翻译转义字符
echo -n "1\t2\t3" # -n 来忽略结尾的换行符
1.2 打印彩色文本
echo -e "\e[1;31m This is red text \e[0m"
echo -e "\e[1;32m This is 绿色 text \e[0m"
\e[1;31 将颜色设为红色, \e[0m 将颜色重新置回。只需要将 31 替换成想要的颜色码就可以了
每种颜色都有对应的颜色码。比如:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝
色=34,洋红=35,青色=36,白色=37。
1.3 打印彩色背景
echo -e "\e[1;42m Green Background \e[0m"
echo -e "\e[1;41m red Background \e[0m"
要设置彩色背景,经常使用的颜色码是:重置=0,黑色=40,红色=41,绿色=42,黄色=43,
蓝色=44,洋红=45,青色=46,白色=47。
二、printf
[root@localhost ~]# printf "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456
三、变量和环境变量
3.1 查看某个进程的环境变量
cat /proc/2765/environ
cat /proc/2765/environ | tr '\0' '\n' # 实现每一行显示一组,tr 命令将 \0 替换成 \n
3.2给变量赋值。var=value
name=xm
echo $name
name=xx
echo $name
echo ${name}
如果 value 不包含任何空白字符(例如空格),那么它就不需要使用引号进行引用,否则必须使用单引号或双引号。
注意, var = value 不同于 var=value 。把 var=value 写成 var = value 是一个常见的错误,
但var=value是赋值操作,var = value则是相等操作。
3.3 给环境变量赋值
export PATH="$PATH:/home/user/bin"
echo $PATH
export 命令用来设置环境变量。 PATH 通常定义在/etc/environment或/etc/profile或~/.bashrc
中。还有一些众所周知的环境变量: HOME 、 PWD 、 USER 、 UID 、 SHELL 等
3.4 获取变量的长度
echo ${#name}
3.5 识别当前所使用的shell
echo $SHELL
echo $0
3.6 检查是否为超级用户
echo $UID
root用户的 UID 是0
四、数学运算
4.1 let 相加运算
no1=4
no2=5
let result=no1+no2
echo $result
# 无let时候
result1=no1+no2
echo $result1
let result1=no1+no2
echo $result1
4.2 [] 相加运算
result2=$[ no1 + no2 ]
4.3 (())相加运算
result3=$(( no1 + 1))
4.4 expr 相加运算
注意:有空格
以上这些方法只能用于整数运算,而不支持浮点数
4.5 bc工具
bc 是一个用于数学运算的高级工具,这个精密计算器包含了大量的选项。我们可以
借助它执行浮点数运算并应用一些高级函数:
设置精度:
参数 scale=2 将小数位个数设置为2。因此,bc 将会输出包含两个小数位的数值。
转换进制:
计算平方根和平方:
五、文件描述符和重定向
把错误放到文件中
2是标准错误。
0 —— stdin (标准输入)。
1 —— stdout (标准输出)。
2 —— stderr (标准错误)。
> 会覆盖
>> 追加
六、数组和关联数组
数组:普通数组只能使用整数作为数组索引
关联数组:
在关联数组中,我们可以用任意的文本作为数组索引
七、使用别名
设置 别名:
alias rm='rm -i'
alias 命令的作用只是暂时的。一旦关闭当前终端,所有设置过的别名就失效了。为了使别名设置一直保持作用,可以将它放入 ~/.bashrc 文件中。因为每当一个新的shell进程生成时,都会执行 ~/.bashrc 中的命令。
如果需要删除别名,只用将其对应的语句(如果有的话)从 ~/.bashrc 中删除,或者使用 unalias 命令。或者使用 alias example= ,这会取消名为 example的别名。
八、获取终端信息
获取终端的行数和列数:
tput cols
tput lines
打印出当前终端名:
tput longname
将光标移动到坐标(100,100)处:
tput cup 100 100
九、日期和延时
date # 读取日期
date +%s # 打印纪元时
date --date "Thu Nov 18 08:07:21 IST 2010" +%s #将日期串转换成纪元
date --date "Feb 12 2023" +%A #获知给定的日期是星期几
date "+%d %B %Y" # 按照你的选择打印出对应格式的日期
纪元时被定义为从世界标准时间1970年1月1日0时0分0秒起至当前时刻的总秒数,不包括闰秒 。当计算两个日期或两段时间的差值时,纪元时很有用处。你可以得出两个特定时间戳的纪元时间,并计算出两者之间的差值,由此就能知道两个日期之间相隔了多少秒。
十、函数
十一、测试
文件系统测试:
字符串比较:
中括号可以用test代替: