常用Shell命令介绍

查看所有的全局环境变量

env           # 查看全局环境变量
printenv      # 查看全局环境变量
printenv USER # 查看单个变量
echo $USER    # 查看单个变量
set           # 包含所有的全局变量和用户定义的局部变量
export        # 把局部变量提升为全局变量
unset "变量名" # 取消设置变量
2)变量定义规则

(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
(2〉等号两侧不能有空格
(3)在 bash中,变量默认类型都是字符串类型,无法直接进行数值运算,需要**(())** 或 []

4)变量的值如果有经格,需要使用双引号或单引号括起来。c

$* 代表命令行中所有的参数,$*把所有的参数看成一个整体
$@ 代表命令行中所有的参数,$@把每个的参数分别看待
shell脚本的$的含义
$0: 脚本自身的名称;
$1: 传入脚本的第一个参数;
$2: 传入脚本的第二个参数;
$*:传入脚本的所有参数;
$@: 传入脚本的所有参数;
$$: 脚本执行的进程id;
$#:传入脚本的参数个数;
$?: 上一条命令执行后的状态,结果为0表示执行正常,结果为1表示执行异常;范围为(0~255)

expr 运算符
expr 3 + 2
expr 5 - 2
expr 5 \* 2

echo $((5*2))
echo $[5*2]

a=$[6+8]
echo a

a=$(expr 5 \* 2)
a=`expr 5 \* 2`
echo a
常用判断条件

(1) 两个整数之间比较

-eq 等于 -ne not equal

-lt 小于 -le less equal

-gt 大于 -ge greater equal

注:如果是字符串之间的比较,用等号“=”判断相等;用“!=”判断不等。

touch test
[ -w test ]
[ -r test ]
[ -x test ]

(2)按照文件权限判断

-r 有读权限(read)

-w 有写权限(write)

-x 有执行权限(execute)

(3)按照文件类型进行判断

-e 文件存在 (existence)

-f 文件存在并且是一个常规文件(file)

-d 文件存在并且是一个目录(directory)

流程控制
(1) if 判断

基本语法

if [ 条件判断式 ]; then
    程序
fi

或者

if [ 条件判断式]
then
    程序
fi

多分支

if [  ]
then
	echo ""
elif [  ]
then
	echo ""
elif [  ]
then
	echo ""
else
	echo ""
fi
(2) case

基本语法

case $变量名 in
"值1")
	如果变量的值等于值1,则执行程序1
;;
"值2")
	如果变量的值等于值2,则执行程序2
;;
	...省略其他分支...
*)
	如果变量的值都不是以上的值,则执行此程序
;;
esac
(2) for 循环

基本语法1

for (( 初始值; 循环控制; 变量变化 ))
do
	程序
done

实例1

for (( i=1; i <= $1; i++ ))
do
	sum = $[ $sum + $i ]
done
echo $sum

基本语法2

for 变量 in 值1 值2 值3...
do
	程序
done

实例2

for os in linux windows macos; do echo $os; done
for i in {1..100}; do sum=$[$sum+$i]; done; echo $sum
(3) while 循环

基本语法

while [ 条件式 ]
do
	程序
done
read读取控制台输入
1)基本语法

read (选项) (参数)

选项 -p 指定读取值时的提示符

​ -t 指定读取时等待的时间(秒);若不加则一直等待

参数

​ 变量:指定读取值的变量名

read -t 10 -p "Enter you name: " name
echo $name
得到系统时间戳函数
date +%s

basename [dir_path] suffix

dirname

**脚本中使用系统函数 **

$( 系统函数 )

函数案例

#!/bin/bash

function add(){
        s=$[$1 + $2]
         echo $s
}

read -p "输入第一个参数" a
read -p "输入第二个参数" b
sum=$(add $a $b)
echo $sum

综合案例:文件归档

#/bin/bash

# 首先判断输入参数是否为1
if [ $# -ne 1 ]; then
        echo "参数个数错误!应该输入一个参数,作为归档目录"
        exit
fi

# 从参数中获取目录名称
if [ -d $1 ]; then
        echo
else
        echo
        echo "目录不存在!"
        echo
        exit
fi

DIR_NAME=$(basename $1)
DIR_PATH=$(cd $(dirname $2); pwd)

# 获取当前日期
DATE=$(date +%y%m%d)

# 定义生成的归档文件名称
FILE=archive_${DIR_NAME}_$DATE.tar.gz
DEST=/root/archive/$FILE

# 开始归档文件
echo "开始归档"
echo
tar -czf $DEST $DIR_PATH/$DIR_NAME

if [ $? -eq 0 ]; then
        echo
        echo "归档成功"
        echo "归档文件为:$DEST"
        echo
else
        echo "归档出现问题"
        echo
fi


exit
alias 使用方法

在命令行环境中,别名(alias)用于为常用命令或命令序列创建自定义的简化名称。通过定义别名,你可以将复杂或冗长的命令映射为简短的别名,以便更方便地使用它们。

别名可以提高命令行的效率和易用性,特别是在需要频繁键入相同命令或命令序列时。通过使用别名,你可以减少输入的字符数量,并减少出错的可能性。

alias

以下是一些使用别名的示例:

创建常用命令的别名:

alias ll='ls -l'

在这个例子中,`ll` 是 `ls -l` 的别名。每当你键入 `ll` 时,实际上会执行 `ls -l` 命令。

创建包含多个命令的别名:

alias update='sudo apt update && sudo apt upgrade'
alias MPU_ALL='echo -e "y\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\n" | ~/mstarbbm/ssd202/project/make_usb_upgrade_sigmastar.sh'
echo 使用方法

echo -e 是一个在 Bash shell 中使用的特殊的 echo 命令选项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kunsir_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值