博客
关于我
Linux学习--第十天--bash脚本、用户自定义变量、环境变量、位置参数变量、预定义变量、标准输入输出、wc、history、dd、PS1
阅读量:804 次
发布时间:2023-02-03

本文共 2225 字,大约阅读时间需要 7 分钟。

shell脚本入门到进阶

Shell简介

Shell是 Unix/Linux系统中重要的命令行接口工具,主要用于批量处理、系统管理和自动化脚本编写。Shell分为两种类型:BashC Shell

B Shell

  • sh、ksh、Bash、psh、zsh:Bash是Linux系统默认的shell,兼容性强,功能强大。

C Shell

  • csh、tcsh:其语言风格类似于C语言,得名C Shell

查看系统Shell

cat /etc/shells

Echo命令

echo是Shell中最常用的命令,用于显示信息或执行操作。

常用例子

echo -e "ab\bc"    # 输出 "abc"
echo -e "\e[1;31m abcd \e[0m" # 输出彩色字体,支持ANSI代码

特殊字符

\a    警告声
\b 删除前一个字符
\c 不加换行符
\f 换页
\n 换行(默认)
\r 回车
\t 制表符
\v 垂直制表符
\\ 插入`\`
\0nnn 插入ASCII字符(八进制)
\xhh 插入ASCII字符(十六进制)

脚本执行

chmod 755 my.sh    # 使脚本可执行
./my.sh # 执行脚本

在bash中执行

bash my.sh

DOS脚本转换

yum update -y dos2unix    # 安装转换工具

命令历史

history -c          # 清除命令历史
history -w # 强制保存历史
!n # 执行第n条命令
!字符串 # 找到最近包含“字符串”的命令
vi /etc/profile # 修改bash配置文件,保存历史条数

命令别名

alias vi="vim"        # 定义别名
unalias vi # 移除别名

命令执行顺序

  • 绝对路径或相对路径
  • 别名
  • 内部命令
  • 根据$PATH查找路径
  • 快捷键

    Ctrl+A      光标到开头
    Ctrl+C 终止命令
    Ctrl+Z 后台暂停
    Ctrl+U 剪切前面命令
    Ctrl+K 剪切后面命令
    Ctrl+Y 粘贴命令
    Ctrl+L 清屏

    标准输入输出

    /dev/stdin  标准输入(文件描述符0)
    /dev/stdout 标准输出(文件描述符1)
    /dev/stderr 标准错误(文件描述符2)
    # 重定向示例
    ls > my.txt # 覆盖
    ls >> my.txt # 追加
    ls > file 2>&1 # 同时保存正确输出和错误输出

    wc命令

    wc -c my.txt    字符计数
    wc -l my.txt 行计数
    wc -w my.txt 单词计数

    多命令执行

    ;               无关命令
    && 前面无误执行后面命令
    || 前面错误则执行后面命令

    管道符

    命令1 | 命令2

    Grep命令

    grep 'ss' /etc/services   查找文本
    grep -i 'ss' /etc/services 忽略大小写
    grep -n 'ss' /etc/services 显示行号
    grep -v 'ss' /etc/services 找不到的行

    通配符

    ?    单个字符
    \* 任意字符(非空)
    [] 字符类
    ^ 开头
    - 区间
    ^0-5 特定范围

    Bash特殊符号

    ''      不解析特殊符号
    "" 不解析特殊符号(除$、`、`)
    ` 运行子shell
    $() 子shell输出
    # comment

    四种变量

    用户自定义变量

    name=12
    echo $name

    环境变量

    PATH="/usr/bin:/usr/sbin:$PATH"

    预定义变量

    $0    命令名或脚本名
    $1 第一个参数
    $* 所有参数
    @ 分别处理参数
    # 命令的返回状态
    ? 最后一个命令的状态
    $! 后台进程号
    $$ 进程号

    Read命令

    read -s -t 30 -n 3 -p "输入数字" yournumber

    数值运算

    aa=11
    bb=22
    declare -i cc=$aa+$bb
    declare -i cc=$aa+$bb
    dd=$(expr $aa + $bb)
    ff=$(( $aa + $bb ))

    运算符

    • 逐个字符比较 ==!=
    • 数值运算 +-*/%
    • 逻辑运算 &&||
    • 条件运算 ||&&!
    • 关系运算 ==<><=>=
    • 数值运算 =~$?+=-=*=/=%=

    判断测试表达式

    [ condition ]
    [ -e /path/to/file ] 判断文件存在
    [ $a -eq $b ] 判断数值相等
    [ "字符串1" =~ "字符串2" ] 部分字符串匹配
    [ -d /path ] 判断是否是目录
    [ -f /path ] 判断是否是文件

    转载地址:http://zhzfk.baihongyu.com/

    你可能感兴趣的文章
    nodejs npm常用命令
    查看>>
    nodejs npm常用命令
    查看>>
    Nodejs process.nextTick() 使用详解
    查看>>
    nodejs 创建HTTP服务器详解
    查看>>
    nodejs 发起 GET 请求示例和 POST 请求示例
    查看>>
    NodeJS 导入导出模块的方法( 代码演示 )
    查看>>
    nodejs 开发websocket 笔记
    查看>>
    nodejs 的 Buffer 详解
    查看>>
    nodejs 读取xlsx文件内容
    查看>>
    nodejs 运行CMD命令
    查看>>
    Nodejs+Express+Mysql实现简单用户管理增删改查
    查看>>
    nodejs+nginx获取真实ip
    查看>>
    nodejs-mime类型
    查看>>
    NodeJs——(11)控制权转移next
    查看>>
    NodeJS、NPM安装配置步骤(windows版本)
    查看>>
    NodeJS、NPM安装配置步骤(windows版本)
    查看>>
    nodejs与javascript中的aes加密
    查看>>
    nodejs中Express 路由统一设置缓存的小技巧
    查看>>
    nodejs中express的使用
    查看>>
    Nodejs中的fs模块的使用
    查看>>