shell


shell

Shell 是一种用于与操作系统进行交互的命令行界面。常见的 Shell 有 Bash(Bourne Again Shell)、Zsh、Ksh、以及 Windows 上的 PowerShell。Shell 不仅可以用于执行单个命令,还可以编写脚本来自动化任务。以下是一些基本的 Shell 命令和脚本编写的示例。

基本 Shell 命令

文件和目录操作

  • ls:列出目录内容

    ls
    ls -l  # 显示详细信息
    ls -a  # 显示所有文件,包括隐藏文件
  • cd:更改目录

    cd /path/to/directory
    cd ..  # 返回上一级目录
  • pwd:显示当前工作目录

    pwd
  • mkdir:创建目录

    mkdir new_directory
  • rm:删除文件或目录

    rm filename
    rm -r directory  # 删除目录及其内容
  • cp:复制文件或目录

    cp source_file destination
    cp -r source_directory destination  # 复制目录及其内容
  • mv:移动或重命名文件或目录

    mv old_name new_name
    mv file /path/to/destination

文件查看和编辑

  • cat:查看文件内容

    cat filename
  • less:分页查看文件内容

    less filename
  • head:查看文件开头部分

    head filename
    head -n 10 filename  # 查看前 10 行
  • tail:查看文件末尾部分

    tail filename
    tail -n 10 filename  # 查看后 10 行
  • nanovivim:文本编辑器

    nano filename
    vi filename
    vim filename

系统信息和管理

  • echo:打印消息

    echo "Hello, World!"
  • whoami:显示当前用户

    whoami
  • top:实时显示系统性能信息

    top
  • ps:显示当前进程

    ps
    ps aux  # 显示所有进程
  • kill:终止进程

    kill PID
    kill -9 PID  # 强制终止进程
  • chmod:更改文件权限

    chmod 755 filename
    chmod +x filename  # 使文件可执行
  • chown:更改文件所有者

    chown user:group filename

网络相关

  • ping:测试网络连通性

    ping example.com
  • curl:发送网络请求

    curl http://example.com
  • wget:下载文件

    wget http://example.com/file

管道和重定向

  • **|**:管道,将一个命令的输出作为另一个命令的输入

    ls | grep "pattern"
  • **>**:重定向输出到文件(覆盖)

    echo "Hello, World!" > file.txt
  • **>>**:重定向输出到文件(追加)

    echo "Hello, World!" >> file.txt
  • **<**:重定向输入

    command < inputfile

变量

  • 设置变量

    MY_VAR="Hello, World!"
  • 使用变量

    echo $MY_VAR

Shell 脚本

Shell 脚本是一组 Shell 命令的集合,通常用于自动化任务。以下是一个简单的 Shell 脚本示例:

创建脚本文件

使用你喜欢的文本编辑器创建一个脚本文件,例如 myscript.sh

nano myscript.sh

编写脚本

在脚本文件中编写以下内容:

#!/bin/bash

# 打印消息
echo "This is a simple shell script."

# 设置变量
NAME="Alice"

# 使用变量
echo "Hello, $NAME!"

# 条件语句
if [ $NAME == "Alice" ]; then
  echo "Welcome, Alice!"
else
  echo "You are not Alice."
fi

# 循环
for i in {1..5}; do
  echo "Number: $i"
done

# 函数
my_function() {
  echo "This is a function."
}

# 调用函数
my_function

运行脚本

首先使脚本可执行:

chmod +x myscript.sh

然后运行脚本:

./myscript.sh

文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
评论
  目录