📄 bash.txt
字号:
读取args,并将args合为一个命令,然后执行。其返回值成为eval的返回值。如果没有参数,eval返回True。
*************************
exec [[-] command [arguments]]
当命令执行时,该命令取代shell,没有新的process产生。如果第一个参数是"-",shell会将"-"放入第零个参数,传给command。
*************************
export [-nf] [name[=word]] ...
export -p
将name输出给环境,给往后的命令使用。"-f"选项表示name是函数。"-p"显示出所有export的名称。"-n"移除name。
*************************
set [--abefhkmnptuvxldCHP] [-o option] [arg ...]
-a : 自动将变数标记为可让后面环境所使用。
-b : 立即报告被终结的背景程式状态。
-e : 当命令(simple-command,见后面)返回非零值时,立即跳出。
-f : 取消pathname expansion。
-h : 找出所记忆的函数命令位置。
-k : 所有keyword参数都放到环境中。
-m : 监督模式。
-n : 读取命令,但不要执行。可用于语法检查。
-p : 打开privileged模式。
-t : 当读取一个命令并执行后,立即离开。
-u : 当参数展开时,把unset参数当成是错误。
-v : 列出shell input lines。
-x : 在展开每个simple-command后,bash显示展开值在PS4上。
-l : 储存并还原name binding在for语法中。
-d : 关闭hasing command搜寻。
-C : 跟`noclobber=`一样。请见内定参数一节。
-H : 启动! style history substitution。
-P : 在使用像cd这种指令时,不要跟随symbolic links。
-- : "--"之后,没有参数跟在后面。
- : 指定将所有后面的参数当成是位置参数。
-o option-name : option-name可以是以下之一
allexport : 与"-a"相同。
braceexpand : 启动Brace Expansion。这是内定设定。
emacs : 使用emacs-style命令列编辑界面。
errexit : 与"-e"相同。
histexpand : 与"-H"相同。
ignoreeof : 效果跟`IGNOREEOF=10`一样。
interactive-commands : 允许#做为解。
monitor : 与"-m"相同。
noclobber : 与"-C"相同。
noexec : 与"-n"相同。
noglob : 与"-f"相同。
nohash : 与"-d"相同。
notify : 与"-b"相同。
nounset : 与"-u"相同。
physical : 与"-P"相同。
posix : Bash行为修改为Posix 1003.2标准。
privileged : 与"-p"相同。
verbose : 与"-v"相同。
vi : 使用vi-style命令列编辑程式。
xtrace : 与"-x"相同。
*************************
unset [-fv] [name ...]
移除对映于name的参数。要注意PATH、IFS、PPID、PS1、PS2、UID、EUID不能unset。若RANDOM、SECONDS、LINENO、HISTCMD被unset,它
们会丧失原有意义,既始它们后来被重设也一样。返回值为True,除非name是不能被unset的。
*************************
fc [-e ename] [-nlr] [first] [last]
fc -s [pat=rep] [cmd]
修正命令。
*************************
getopts optstring name [args]
解析位置参数。
*************************
help [pattern]
显示协助资讯。
*************************
history [n]
history -rwan [filename]
没有参数时,会显示所下命令的历史记录。带有参数"n"则显示最后n个。
其它参数如下:
-a : 新增"新历史"到历史档中。
-n : 读取尚未读到历史中的记录。
-r : 读取filename做为历史档,并用它为目前历史记录。
-w : 将现有历史记录写到filename中。
*************************
let arg [arg ...]
算术表述。请参考算术表述一节。
*************************
local [name[=value] ...]
产生一个局部参数。如果用于function,则其作用围在function内及其子函数。
*************************
logout
离开login shell。
*************************
popd [+/-n]
移除目录堆叠。"+n"移除上面n个,"-n"移除下面n个。
*************************
pushd [dir]
pushd +/-n
将目录新增到目录堆叠的最上面。"+n"旋转该堆叠,使第n个目录变成最上面。"-n"旋转该堆叠,使倒数第n个目录变成最上面。
*************************
pwd
列出目前工作目录的绝对路径。
*************************
read [-r] [name ...]
读进一行,然后第一个字设到第一个name,第二个设到第二个name,依此类推。如果没有name在参数中,则read会将值设到REPLY。返回
值为零,除非遇到End-Of-File。若有"-r"选项,则"n"被考虑为该行的一部份。
*************************
readonly [-f] [name ...]
readonly -p
将给定的name标记为readonly。如果是"-f"选项,则函数也一样被标记为readonly。"-p"会列出所有readonly的name。"--"取消检查剩余
的参数。
*************************
shift [n]
Positional Parameters从n+1...开始,会被改为$1...。n若为零,则没有改变。n若未给定,则内定为1。n必须是非负数,并且小于或等
于$#。若n大于$#,则没有改变。返回值为零,除非n大于$#或小于零。
*************************
suspend [-f]
暂停这个shell的执行,直到它收到SIGCONT信号。"-f"选项则是叫login shell不要抱怨,不过还是一样暂停。返回状态零,除非该shell
是个login shell,而且没有"-f"选项。
*************************
test expr
[ expr ]
我们在Exit Status的部份已经说过了,不再重。
*************************
times
列出该shell的累积的使用者及系统时间及从shell执行的process时间,返回值为零。
------------------------------------------------------------------------------
trap [-l] [arg] [sigspec]
当收到sigspec信号时,执行arg命令。"-l"显示出信号名称及号码。
*************************
type [-all] [-type | -path] name [name ...]
没有参数的状况下,它会显示出shell如何解译name做为命令。如果有"-type",它将会显示alias、keyword、function、builtin或file。
如果有"-path"的参数,它将会显示该命令的路径,找不到的话,不显示任何东西。如果有"-all"的参数,它将会显示所有可执行name的可能
路径。type接受"-a"、"-t"、"-p"做为缩写。
*************************
ulimit [-SHacdfmstpnuv [limit]]
ulimit提供了对shell的可获取资源控制的功能。
-a : 报告目前所有限制。
-c : 设定最大可产生的core档案。
-d : 行程资料段(process's data segment)最大值。
-f : 可被这个shell产生的最大档案。
-m : resident set size最大值。
-s : 堆叠最大值。
-t : CPU TIME最大值(以秒计算)。
-p : pipe size in 512-byte blocks的最大值。
-n : 可开启的file descriptors最大值。
-u : 单一使用者可使用的最大process数。
-v : 该shell最大虚拟记忆体可用值。
所有项目是以1024做为单位。
*************************
umask [-S] [mode]
将使用者的file-creation mask设为mode。"-S"选项将mask印成符号形式。
Bash内建参数
PPID : 该bash的呼叫者process ID.
PWD : 目前的工作目录。
OLDPWD : 上一个工作目录。
REPLY : 当read命令没有参数时,直接设在REPLY上。
UID : User ID。
EUID : Effective User ID。
BASH : Bash的完整路径。
BASH_VERSION : Bash版本。
SHLVL : 每次有Bash执行时,数字加一。
RANDOM : 每次这个参数被用到时,就会产生一个乱数在RANDOM上。
SECONDS : 从这个Shell一开始启动后的时间。
LINENO : Script的行数。
HISTCMD : 历史记录数。
OPTARG : getopts处理的最后一个选项参数。
OPTIND : 下一个要由getopts所处理的参数号码。
HOSTTYPE : 机器种类。
OSTYPE : 作业系统名称。
IFS : Internal Field Separator。
PATH : 命令搜寻路径。
PATH="/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:."
HOME : 目前使用者的home directory;
CDPATH : cd命令的搜寻路径。
ENV : 如果这个参数被设定,每次有shell script被执行时,将会执行它所设定的档名做为环境设定。
MAIL : 如果这个参数被设定,而且MAILPATH没有被设定,那么有信件进来时,bash会通知使用者。
MAILCHECK : 设定多久时间检查邮件一次。
MAILPATH : 一串的邮件检查路径。
MAIL_WARNING : 如果有设定的话,邮件被读取后,将会显示讯息。
PS1 : 提示讯息设定,内定为"bash$ "。(请详见提示讯息一节。)
PS2 : 第二提示讯息设定,内定为"> "。
PS3 : select命令所使用的提示讯息。
PS4 : 执行追踪时用的提示讯息设定,内定为"+ "。
HISTSIZE : 命令历史记录量,内定为500。
HISTFILE : 历史记录档,内定~/.bash_history。
HISTFILESIZE : 历史记录档行数最大值,内定500。
OPTERR : 如果设为1,bash会显示getopts的错误。
PROMPT_COMMAND : 如果设定的话,该值会在每次执行命令前都显示。
IGNOREEOF : 将EOF值当成输入,内定为10。
TMOUT : 如果设为大于零,该值被解译为输入等待秒数。若无输入,当成没有输入。
FCEDIT : fc命令的内定编辑器。
FIGNORE : 请详见READLINE。
INPUTRC : readline的startup file,内定~/.inputrc
notify : 如果设定了,bash立即报告被终结的背景程式。
history_control, HISTCONTROL : history使用。
command_oriented_history : 存入多行指令。
glob_dot_filenames : 如果设定了,bash将会把"."包含入档案路径中。
allow_null_glob_expansion : 如果设定了,bash允许路径明称为null string。
histchars : history使用。
nolinks : 如果设定了,执行指令时,不会跟随symbolic links。
hostname_completion_file, HOSTFILE : 包含与/etc/hosts相同格式的档名。
noclobber : 如果设定了,Bash不会覆写任何由">"、">&"及""所操作的档案。
auto_resume : 请见任务控制一节。
no_exit_on_failed_exec : 如果该值存在,非互动的shell不会因为exec失败而跳出。
cdable_vars : 如果启动,而cd命令找不到目录,可切换到参数形态指定的目录下。
提示符号
Bash使用PS1~PS4来显示提示符号,其格式如下:
*************************
t : 现在时间。
d : 现在日期。
n : 新行。
s : shell的名称。
w : 目前工作目录。
W : 目前工作目录完整路径。
u : 使用者名称。
h : Hostname。
# : 这个命令的号码。
! : 历史号码。
$ : 如果EUID是0,则#,否则为$。
nnn : 八进位的字元。
: ""符号。
[ : 开始一序列不可列印的字元。
] : 结束一序列不可列印的字元。
算术表述
- +
! ~
* / %
+ -
>
=
== !=
&
^
|
&&
||
= *= /= %= += -= >= &= ^= |=
重导Redirection
>
>>
1>
.
.
语法
Simple Command
Pipelines
Lists
(list)
{ list; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -