Ubuntu系统Shell脚本

命令

常用

# 查看所有环境变量 - 打印环境变量
env
echo $PATH
export LD_LIBRARY_PATH=$PWD

#定义和取消变量
var1="123"
unset var1

# 打印系统信息 grep -v "U" 反向不匹配
uname -a

# 账号和密码 - 切换账号 - 设置账号密码
su root
su -
sudo passwd root

# 打开文件管理器 - 切换到用户目录 - 切换到上次访问目录
cd 
cd -
nautilus .

# 目录快速操作 目录入栈 出栈 列出栈目录 切换目录 弹出指定栈中目录
# + 从左至右 - 从右至左  序号从0开始计数
pushd .
popd  
dirs
pushd -0
popd +2

# 查看命令位置
which git

基本命令详情

# echo 显示文本
# -e 激活转义字符,不当字符串输出
echo "\nHello"
echo "\nHello\b1"

# yes 重复输出字符串
yes 
yes n

# 创建目录和删除文件
mkdir  dir
rm -rf dir

# 复制 符号链接+d参数
# 复制 目录+r参数
cp -df  libdtypestd.so  ..
cp -r   skia ..
# 显示最后10行
# 跟踪log文件
tail skia.log
tail -f skia.log 

其他

# 文件所在目录 相对或者绝对路径
aa=`dirname $0`

# 执行脚本文件名
aa=`dirname $0 .sh`
 
# 执行脚本文件名(加后缀)
aa=`dirname $0`

# 标准获取脚本所在绝对目录
# 直接执行脚本,启动另一个shell,初始化$0,如$0为./build/copy_std.sh
build_dir=$(cd $(dirname $0);pwd) 
# 即使在source *.sh也正常,source并不会另起一个新的shell进程,推荐写法
build_dir=$(cd $(dirname ${BASH_SOURCE[0]});pwd) 

控制语句

分支控制if

# 单分支 
a=4
if [ $a -eq 4 ]
then
   echo "4 == 4"
fi

# 双分支
# -e 是否存在
# -f 是否为文件
# -d 是否为目录
# -r 可读 -w 可写 -x 可执行
# -s 文件大小不为0
# 注意[]内部两边有空格
if [ ! -e TextEngineLib ];then
    echo "TextEngineLib not exist"
else
    echo "TextEngineLib exist "
fi

# 多分支
if [];then
   echo "1"
elif [];then
   echo "2"
else
   echo "3"
fi

循环控制for

# 执行6次循环
for((i=0;i<6;++i))
do
    echo $i
done
# 另一种方式
for i in {2..7}
do
    echo $i
done

# 给定列表循环
for file in a.so b.so c.so 
do 
    echo $file 
done 

# 文件
for file in *.txt
do 
    echo $file
done
# 
for file in `ls *.txt`
do 
    echo $file
done

函数

  函数定义 、调用、传参

function copy_cclib()
{
    for file in `ls ${cclib_dev_dir}/$1/$2/$3/`
    do
        echo copy ${file}
        cp -rf ${cclib_dev_dir}/$1/$2/$3/${file} ${this_script_dir}/bin
    done
}
copy_cclib qt 5.9.4 mac

常见脚本写法

# 判断系统
if [[ "$(uname)" = "Linux" ]]; then
  HOMEBREW_ON_LINUX=1
fi

获取运行目录,脚本目录,上级目录

#!/bin/bash
run_dir=${PWD} 
build_dir=$(cd $(dirname ${BASH_SOURCE[0]});pwd) 
cd ${build_dir}/.. 
root_dir=${PWD} 
echo $run_dir 
echo $build_dir 
echo $root_dir 
cd $run_dir 

配置文件

/etc/profile

/etc/bashrc

~/.bash_profile   - mac

~/.bash_login

~/.profile             - ubuntu

~/.bashrc

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值