Shell从入门到精通:核心概念全解析

一、Shell 的定义与类型

Shell 是什么

用 C 语言编写的程序,是用户与 Linux 内核交互的桥梁,兼具命令语言和编程语言特性。

Shell 脚本:以.sh为后缀的可执行文件,首行需指定解释器(如#!/bin/bash)。

常见 Shell 类型

Bash(/bin/bash):Linux 默认 Shell,兼容 Bourne Shell,功能丰富。

其他类型:C Shell(csh)、K Shell(ksh)、Bourne Shell(sh)等,默认 Shell 记录在/etc/passwd文件中。

二、Shell 的父子进程关系

父 Shell 与子 Shell

父 Shell:登录终端时启动的默认 Shell(如-bash)。

子 Shell:通过bash命令创建,可嵌套多层,用ps --forest查看进程树(PID 为子进程 ID,PPID 为父进程 ID)。

退出子 Shell:使用exit命令,逐层返回父 Shell。

三、Shell 的运行模式

命令列表与进程列表

命令列表:用;分隔命令(如pwd; ls),顺序执行。

进程列表:用()包裹命令,在子 Shell 中执行,可通过echo $BASH_SUBSHELL判断子 Shell 层级(返回1表示存在子 Shell)。

后台模式与协程

后台运行:命令末尾加&(如sleep 60&),用jobs查看任务,ps -f查看进程。

协程(coproc):在后台创建子 Shell 执行命令,如coproc { sleep 10; },默认名称为COPROC。

四、内建命令与外部命令

核心区别

内建命令:集成在 Shell 中,无需创建子进程(如cd、exit、history),执行效率高。

外部命令:存储在磁盘(如/bin/ls),执行时创建子进程(如ps、grep)。

命令类型查询

type -a 命令:查看命令是否为内建(如type -a cd显示is a shell builtin)。

五、关键内建命令:history 与 alias

history 命令

功能:记录历史命令,存储在~/.bash_history文件中。

常用操作:

history:查看历史列表;

!!:重复上一条命令;

!编号:执行指定历史命令;

history -a:强制将内存历史写入文件。

alias 命令

功能:为命令创建别名(如alias ll='ls -alF'),简化输入。

操作:

alias -p:查看所有别名;

unalias 别名:删除别名;

持久化:将别名写入~/.bashrc文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值