Shell简介
Shell是命令行界面(CLI)的一个程序,它接受用户的输入命令,并调用操作系统的内核来执行这些命令。Shell通常提供一些内置的命令和函数,以方便用户操作系统。常见的Shell有Bash、Zsh、Fish等。
Bash
Bash是Linux和macOS上的默认Shell。Bash是一个功能强大的命令行shell,它支持:- Tab补全:按Tab键可以自动补全命令、路径名、变量等。
- 命令历史:使用上下箭头可以浏览之前执行过的命令。 - 通配符:如*可以匹配多个字符。 - 管道管道符|可以将多个命令的输出作为下一个命令的输入。 - 变量:可以设置环境变量和用户变量。变量的格式为name或者{name}。 - 字符串操作:可以对字符串进行长度计算、替换、提取子字符串等操作。 - 条件判断:可以使用if语句进行条件判断。 - 循环:Bash支持for循环和while循环。
Bash的配置文件为.bash_profile,你可以在该文件中设置环境变量、创建别名等来自定义你的Shell环境。## Shell通配符Shell通配符用于匹配文件名、目录名或字符串。常见的通配符有:- *:匹配0个或多个字符。例如*.txt匹配所有txt文件。
?:匹配任意一个字符。例如?.txt匹配所有以t开头,xt结尾,中间有一个字符的文件。 -[...]:匹配[和]之间的任意一个字符。例如[a-z]匹配任意一个小写字母。-!(...):匹配除(...)里的字符外的任意字符。
例如!(**.txt|**.doc)匹配除txt和doc文件外的所有文件。使用通配符可以非常方便的进行文件搜索和筛选。总之,Shell是一个功能强大命令行工具,掌握它可以使你的工作更高效。通过配置文件可以自定义Shell环境,Shell还提供了强大的通配符功能,这些都使得Shell成为系统管理员和开发人员必不可少的工具。
环境变量
环境变量是Shell为进程提供的全局变量。环境变量影响着Shell的行为和程序的运行。有两种环境变量:
- 本地环境变量:仅在当前Shell实例中生效,在子进程中不可见。使用
export命令可以将本地环境变量导出为全局环境变量。 - 全局环境变量:子Shell和系统中启动的进程都可以访问。环境变量的格式为:
bash
NAME=value
要删除环境变量,使用unset NAME。常见的环境变量有:- PATH:查找命令的路径列表。 - HOME:用户主目录的路径。 - SHELL:默认的shell。 - LANG:系统语言设置。可以在Shell的配置文件(如.bash_profile)中设置环境变量,也可以在命令行中临时设置。临时设置的环境变量仅在当前Shell中生效,退出Shell后失效。
别名允许你使用自定义的名字来代表命令或文本。你可以在Shell的配置文件中设置别名,格式为:
bash
alias name='value'
例如:
bash
alias ll='ls -l'
之后你可以直接使用ll代替ls -l命令。别名可以简化命令输入,提高工作效率。但别名只在定义它的Shell中生效,并不影响原命令。