Linux Shell 备忘 笔记

1. 输出重定向
文件描述符含义
0输入STDIN
1标准输出 STDOUT
2标准错误 STDERR

0,1,2 为内置描述符,3-9为保留自定义描述符

文件描述符含义
>将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄。
<从文件而不是从键盘或句柄读入命令输入。
>>将命令输出添加到文件末尾而不删除文件中已有的信息。
>&将一个句柄的输出写入到另一个句柄的输入中。
<&从一个句柄读取输入并将其写入到另一个句柄输出中。
|从一个命令中读取输出并将其写入另一个命令的输入中。也称作管道。
# 临时重定向
echo "Test" >&1 #标准输出
echo "Error" >&2 #标准错误
# 永久重定向 
exec 0<testfile.txt
exec 1>logfile.txt
exec 2>error.txt
2. 函数退出码:
code含义
0命令成功结束
1一般性未知错误
2不适合的Shell命令
126命令不可执行
127没有找到命令
128无效的退出参数
128+x与Linux信号x相关的严重错误
130通过Ctrl+C终止的命令
255正常范围外的退出状态码
3. 结构化命令
#----------------
if [ command ]
then
	commands 
fi
#-----------------
if [ command ]
then 
	commands
else 
	commands
fi
#-----------------
if [ command ]
then 
	commands
elif [ command ]
then 
	commands
fi
#test指令

# 字符串比较
# str1 = str2
# str1 != str2
# str1 < str2
# str1 > str2
# -n str1		长度是否非0
# -z str1		长度是否为0
# 数值比较
# n1 -eq n2 	检查n1与n2相等
# n1 -ge n2 	n1是否大于或等于n2
# n1 -gt n2 	n1是否大于n2
# n1 -le n2		n1是否小于等于n2
# n1 -lt n2 	n1是否小于n2
# n1 -ne n2	 	n1是否不等于n2
# 文件比较
# -d file	是否一个目录
# -e file 	是否存在
# -f file	是否存在并且是一个文件
# -r file	是否存在并可读
# -s file	是否存在并非空
# -w file	是否存在并可写
# -x file	是否存在并可执行
# -O file	是否存在并归属当前用户	
# -G file	是否存在并归属当前组
# file1 -nt file2	file1是否比file2新
# file1 -ot file2	file1是否比file2旧
#-----------------
if test condition
fi
if [ condition ]
then 
fi
#-----------------
if [ condition1 ] && [ condition2 ]
if [ condition1 ] || [ condition2 ]
if (( xxxx )) 数学表达式
if [[ xxx ]] 可使用字符串的模式匹配 
#-----------------
case $val in
val1)
 	commands;;
val2)
	commands;;
*)
	commands;;
esac;
#-----------------
for a in xxx
do 
done 
for (( i=0;i<10;i++ ))
do
done
#-----------------
# 多个测试命令以最后一个命令为最后返回值
while test command
do 
	commands
done
#-----------------
until test command
do
	commands
done
#-----------------
break x#跳出的层数
#-----------------
continue
4. #相关
标记说明
$#命令数字
$@所有参数 分隔
$*所有参数 一个整体
5. 环境变量
  • 全局环境变量
printenv
env $VAR
  • 局部环境变量
set 
unset
  • Shell环境变量(按照加载顺序)

    • /etc/profile
    • /etc/bashrc(部分系统有)
    • $HOME/.bash_profile
    • $HOME/.bashrc
    • $HOME/.bash_login
    • $HOME/.profile

bashrc和profile.d文件夹下面的文件一般通过profile文件进行加载

6.Shell 文件相关

文件头指定的为默认执行程序。eg.

1. #!/bin/bash
2. #!/usr/bin/bash
3. #/usr/bin/python
7. 浮点数解决方案
bc
var1=$(echo "scale=4; 3.44 / 5" | bc)
8. sed

流式文件编辑器

9. gawk

对Sed编辑器的一个封装版本

10.常用命令
# file
cp
mv 
ls
ln
cat
less
more
tail
head
# user
useradd
userdel
usermod
groupadd
groupdel
groupmod
# permission
chmod
passwd
su
sudo
# program
nohup
systemctl
service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值