Shell基础

记录Shell常用命令

Posted by Momoka7 on June 5, 2024

Shell 是一个命令行解释器,负责接收用户输入的命令并调用操作系统的内核执行。

不同的 Shell 版本之间存在一些微妙的差异,但大部分命令通用。

Shell 脚本可以用来编写自动化任务,如安装软件、备份数据等。

编写 Shell 脚本需要使用文本编辑器,并注意第一行需要有#!/bin/bash表示使用 Bash 解释器。

基础使用

helloworld 范例

vi hello.sh

1
2
3
4
5
6
#!/bin/bash

#name=$1

echo "Hello,$name"
echo "$PATH"

第一行为固定写法,表示使用 bash 解释器

shell 脚本的后缀没有固定写法,约定俗成以.sh结尾可读性更好

#表示注释行

脚本执行和变量

  • 新建脚本:vi hello.sh,添加执行权限(重要):chmod a+x hello.sh
  • 执行脚本:bash shfile或者直接输入脚本路径:./shfile
  • 定义脚本接收的输入参数使用$1、$2...$n... etc的形式,表示第 n 个脚本参数,执行脚本并输入参数例:./hello.sh xyh
  • 在一次 shell 会话中,可以定义临时的变量:name=xyh(=前后注意不要有空格)。查看变量:echo $name。若要在 sh 脚本中使用在外部定义的变量,需要定义成环境变量:export name=xyh这样设置的变量只能在此次会话中使用
  • 在定义启动会话配置:在.bashrc(每次新会话开始时)和.profile(用户登录时执行且只执行一次),一般使用前者来定义常用的系统变量命令别名

    vi .bashrc

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    # User specific aliases and functions
    
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    # 定义系统命令别名
    alias la='ls -A'
    
    # Source global definitions
    if [ -f /etc/bashrc ]; then
            . /etc/bashrc
    fi
    # 定义环境变量
    export name=谢雨航
    
  • 一些常用的系统变量

    截图

  • 命令作为变量赋值:$(bash cmd)

    例如在 sh 脚本中,赋值一个随机数给变量:number=$(shuf -i 1-10 -n 1)

注:本笔记截图来源于 Geekhour 的 Shell 入门视频