linux的shell学习笔记

Posted 在左手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux的shell学习笔记相关的知识,希望对你有一定的参考价值。

shell脚本第一行写明解释器的路径: #!/bin/bash
运行脚本两种方式:使用bash命令运行shell文件,或授予脚本文件执行权限,可直接执行文件
shell启动时,一开始执行一组命令来定义提问文本、颜色等设置,命令存放在~/.bashrc中
登录shell放在~/.bash_profile
shell历史记录文件~/.bash_history
bash中每个命令或命令序列通过使用分号或换行符来分隔

echo用于终端打印
printf 用于终端打印
env 查看所有与终端相关的环境变量
cat /proc/$PID/environ 查看进程的环境变量 (PID设置成进程的ID,总是一个整数)
pgrep 进程名 获取进程的ID

变量赋值和变量相等操作要区分
变量赋值:var=value
变量相等操作: var = value

export 用来设置环境变量
export PATH="$PATH:/home/usr/bin"
或者
PATH="$PATH:/home/usr/bin"
export PATH

常用的环境变量有: PATH HOME PWD USER UID SHELL

获取变量长度的方法: ${#var}

数学运算使用 let (()) [] 方式,高级操作时使用expr,bc

使用let时,变量名之前不需要再添加$
no1=4;
no2=5;
let result=no1+no2

let支持++自加操作 --自减操作 let no1++ let no1-- let no1+=6 let no1-=6

[]操作符 []中也可以使用$前缀
result=$[no1 + no2] result=$[$no1 + 5]

使用(())时,变量名之前需要加$
result=$((no1 + 50))

expr用于基本算数操作时,不支持浮点数,支持整数
bc也是一个计算工具

stdin为 0 stdout为1 stderr2
> 输出文本重定向或保存到一个文件中 目标文件中内容会被清空
>> 文本追加到目标文件中

将错误和输出重定向: 1>out.txt 2>err.txt
将错误和输出重定向到一个文件 2>&1 out.txt 或者 &> out.txt

查看文件内容 cat tmp.txt
$?获取命令执行的状态码 echo $?

更改文件的权限: chmod 000 a.txt 给文件增加可执行权限: chmod +x a.out


在控制台显示输出并重定向到一个文件中覆盖原来文件: cat a.txt | tee out.txt

在控制台显示输出并重定向到一个文件,在原来的文件上追加内容: cat a.txt | tee -a out.txt

使用stdin作为命令参数。只需要将-作为命令的文件名参数即可:$ cmd1 | cmd2 | cmd -

将文件重定向,作为命令输入: cmd < file

将脚本内部的文本块进行重定向:cat<<EOF>log.txt与EOF之间的内容作为stdin的部分输入到log.txt中
cat<<EOF>log.txt
LOG FILE HEADER
EOF

创建自定义文件描述符: exec 3<input.txt #使用文件描述符3打开并读取文件input.txt
创建并使用自定义文件描述符过程:[追加模式很相似]
exec 3<input.txt
cat <&3

数组的声明:array_var=(1 2 3 4) 或 array_var[0]="test1" array_var[1]="test2"
输出数组内容: ${array_var[0]} 或index=1 ${array_var[$index]}
以清单形式打印所有值: ${array_var[*]}或${array_var[@]}
打印数组的长度(个数) ${#array_var[*]}

定义一个关联数组: declare -A ass_array
添加元素的方法: ass_array=([index1]=val1 [index2]=val2) 或 ass_array[index1]=val1 ass_array[index2]=val2

使用别名 alias
alias new_command=‘command sequeue‘ 例子:alias install=‘sudo apt-get install‘






































以上是关于linux的shell学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Linux shell 菜鸟学习笔记....

Linux shell command学习笔记

Linux学习笔记-Shell命令机制

Linux学习笔记:Shell基础正则表达式

Linux shell command学习笔记

linux的shell学习笔记