Linux-BashShell命令

Linux-BashShell

tags: Linux Bash Shell Script 2019 年 12 月

BashShell 简介

bash shell 是一个命令解释器,它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕。

bash shell 的作用 使用 shell 实现对 Linux 系统的大部分管理,例如:文件管理、用户管理、权限管理、磁盘管理、网络管理、软件管理、应用管理……

BashShell 使用

语法

功能模块

Tips

检查文件是否存在
if [ ! -d ${config_path} ]; then
    echo ">>> 配置文件${config_path}不存在"
    exit 0
fi

#shell判断文件夹是否存在
if [ ! -d "/Top" ]; then
 mkdir -p /Topfi

#shell判断文件,目录是否存在或者具有权限
folder="/Top"
file="/Top/test.txt"

# -x 参数判断 $folder 是否存在并且是否具有可执行权限
if [ ! -x "$folder"]; then
 mkdir "$folder"
fi

# -d 参数判断 $folder 是否存在
if [ ! -d "$folder"]; then
 mkdir "$folder"
fi

# -f 参数判断 $file 是否存在
if [ ! -f "$file" ]; then
 touch "$file"
fi

# -n 判断一个"变量"是否有值
if [ ! -n "$file" ]; then
 echo "$file 变量为空!"
 exit 0
fi

# 判断两个变量的字符串内容是否相同
if [ "$file1" = "$file2" ]; then
 echo "$file1 equal $file2"
else
 echo "$file1 not equal $file2"
fi
检查字符串是否在其中
STR='GNU/Linux is an operating system'
SUB='Linux'
if [[ "$STR" == *"$SUB"* ]]; then
  echo "It's there."
fi

https://www.linuxidc.com/Linux/2019-08/159866.htm

检查字符串是否存在文件中
if cat ${bash_path} | grep "source ${out_path}" > /dev/null 2>&1
then
    # echo "source ${out_path} 已经存在"
    continue
else
    echo "source ${out_path}" >> ${bash_path}
fi
解决 sudo 默认密码
sudo_password=qwe123
echo ${sudo_password} | sudo -S sh -c "echo 'ssss' > /root/1.log"
读取配置文件 config.ini

配置文件config.ini

[CONFIG_NAME]
KEY1 = val1
KEY2 = val2
[CONFIG_NAME2]
KEY3 = val3

配置脚本 build_env.sh 内容,只能 . build_env.sh执行,否则需要手动su - xxx使环境变量生效

(env) [scfan@fdm ~]$ cat build_env.sh
#!/bin/bash
# >>>>>>>>>>>>>>>>>>>>> 项目配置 <<<<<<<<<<<<<<<<<<<<<<<<<<<<
# 功能说明
#   - 项目配置虚拟环境变量
#   - 参数检查-在项目代码中检查
#   - 支持参数清理,支持多次运行

# >>>>>>>>>>>>>>>>>>>>> 参数配置 <<<<<<<<<<<<<<<<<<<<<<<<<<<<
# 可修改
config_path=config.ini
out_path=~/.fdm_profile
# 不可修改
bash_path=~/.bash_profile

if [ ! -f ${config_path} ]; then
    echo ">>> 配置文件${config_path}不存在"
    exit 0
fi
# >>>>>>>>>>>>>>>>>>>>>  读取配置文件 <<<<<<<<<<<<<<<<<<<<<<<<<<<<
# 读取配置文件 所有信息

# 删除空白行
# 删除左右空格      `echo $name | awk '$1=$1'`
# 检查是否包含字符  [[ $name =~ "[" ]]
function read_config(){
    # 读取配置文件
    IFS="="
    while read -r name value
    do
        if [ "$name" != "" ] && [ "$value" == "" ] && [[ $name =~ "[" ]] && [[ $name =~ "]" ]]; then
            echo "# item $name" >> ${out_path}
        elif [ "$name" != "" ] && [ "$value" != "" ]; then
            # 去除左右空格
            name=`echo $name | awk '$1=$1'`
            value=`echo $value | awk '$1=$1'`
            echo "export ${name}=${value}"  >> ${out_path}
        else
            tmp=0
        fi
    done < ${config_path}
}

# >>> 读取配置文件-方式2-仅供参考
# __readINI [配置文件路径+名称] [节点名] [键值]
# function __readINI() {
#     INIFILE=$1; SECTION=$2; ITEM=$3
#     _readIni=`awk -F '=' '/['$SECTION']/{a=1}a==1&&$1~/'$ITEM'/{print $2;exit}' $INIFILE`
#     echo ${_readIni}
# }
# _IP=( $( __readINI $config_path Project_Name PROJECT_NAME ) )
# echo ${_IP} >> ${out_path}


function set_config(){
    # 使配置文件生效
    if cat ${bash_path} | grep "source ${out_path}" > /dev/null 2>&1
    then
        # echo "source ${out_path} 已经存在"
        tmp=0
    else
        echo "source ${out_path}" >> ${bash_path}
    fi

    . ${bash_path}
}

function clean_config(){
    # 清理配置
    echo "" > ${out_path}
}


clean_config;
read_config;
set_config;

脚本输出结果

# item [CONFIG_NAME]
export KEY1=val1
export KEY2=val2
# item [CONFIG_NAME2]
export KEY3=val3

问题记录

sudo pip command not found

# 解决 sudo pip 失败的问题
echo "alias sudo='sudo env PATH=$PATH'" >> ~/.bashrc
source ~/.bashrc

sudo echo Permission denied 权限不够的问题

# 如下解决方案
sudo sh -c 'echo "This is testPage." >> /usr/local/nginx/html/index.html'
sudo tee version.txt <<< "要插入内容"
echo qwe123 | sudo -S sh -c "echo 'ssss' > /root/1.log"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Linux是一种操作系统,而-bashLinux中的一种shell命令行解释器),它允许用户在命令行中输入命令并执行它们。-bashLinux默认的shell之一,它提供了许多有用的功能和命令,使用户能够更轻松地管理和操作系统。 ### 回答2: Linux -bash 是指 Linux 系统中的 Bash(Bourne Again SHell)终端或命令行界面。 Bash 是一种常用的 Unix shell,它是用于管理和执行命令行操作的基础工具。它允许用户在 Linux 系统上输入和执行各种命令,与系统进行交互,并管理文件和文件夹。 Linux -bash 提供了一个交互式环境,用户可以在其中执行各种命令。它可以用于执行系统管理任务,如安装软件包、配置网络设置、管理用户和权限等。此外,还可以使用 bash 脚本编写批量处理任务,实现自动化和脚本化操作。 在 -bash 终端中,用户可以使用各种命令来探索文件系统、浏览文件和文件夹、编辑文本文件等。用户可以通过输入命令和参数,实现不同的操作和功能,比如复制、移动、删除文件,修改文件权限等等。 -bash 终端也提供了强大的命令行编辑和历史纪录功能。用户可以使用上下箭头键浏览之前输入的命令,并进行修改和再次执行。此外,可以使用 Tab 键进行自动完成操作,节省输入命令的时间和工作量。 总而言之,Linux -bashLinux 系统中常用的命令行界面,在系统管理、文件操作和批处理方面提供了丰富的功能和灵活性,是 Linux 用户和系统管理员必不可少的工具之一。 ### 回答3: Linux的-bash是一种命令行解释器,也称为Bourne Again SHellBash是Unix操作系统中最常用的shell之一,由于Linux是基于UNIX的,因此Bash也成为了Linux中最常用的shell。 -bash表示当前用户所使用的shell环境是Bash。在Linux系统中,当我们打开终端或者SSH登录到服务器时,会自动进入一个shell环境,这个环境中我们可以使用各种命令来执行各种操作。 Bash是一个功能强大且灵活的shell,它支持大量的命令,可以用于管理和操作文件、目录、进程、权限、网络等各个方面。通过Bash,我们可以输入命令并执行,也可以编写shell脚本来进行自动化操作。 在-bash下,我们可以使用各种命令来管理Linux系统,比如ls命令用于列出当前目录下的文件和子目录,cd命令用于切换目录,pwd命令用于显示当前所在的目录,mkdir命令用于创建新的目录,rm命令用于删除文件和目录,等等。 此外,Bash还支持各种运算符和控制结构,允许我们编写复杂的shell脚本来自动化任务。我们可以使用if语句来进行条件判断,使用for和while循环来进行重复操作,还可以通过管道(|)来连接多个命令,实现更复杂的操作。 总之,Linux的-bash是一种强大的命令行解释器,它为我们提供了丰富的命令和功能,使我们能够高效地管理和操作Linux系统。无论是日常使用还是系统管理,熟练掌握-bash都是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SuperScfan

多谢您的支持O(∩_∩)O~~

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

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

打赏作者

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

抵扣说明:

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

余额充值