linux命令与shell linux怎么进入shell命令

大家好,linux命令与shell相信很多的网友都不是很明白,包括linux怎么进入shell命令也是一样,不过没有关系,接下来就来为大家分享关于linux命令与shell和linux怎么进入shell命令的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

linux中source命令详解

linux系统中source命令用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。下面是source命令内容的具体介绍:

1、source命令简介:

source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令,使Shell读入指定的Shell程序文件并依次执行文件中的所有语句,用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

2、语法:

source filename或. filename

3、source filename与 sh filename及./filename执行脚本的区别:

当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别的。./filename是因为当前目录没有在PATH中,所有”.”是用来表示当前目录的。

sh filename重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。

source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

举例:

1.新建一个test.sh脚本,内容为:A=1

2.然后使其可执行chmod+x test.sh

3.运行sh test.sh后,echo$A,显示为空,因为A=1并未传回给当前shell

4.运行./test.sh后,也是一样的效果

5.运行source test.sh或者. test.sh,然后echo$A,则会显示1,说明A=1的变量在当前shell中

linux自动补全命令

linux系统下怎么自动补全命令呢,下面是具体介绍。

输入“命令的前几个字符”,之后按TAB键即可自动补全命令。比如,想更改密码,但只记得这个命令前几个字母是pass。这时候,按Tab键,shell就自动输出 passwd命令,十分方便。

拓展资料:

在shell命令行可以使用“Tab”键自动补全命令或文件名,这种功能其实可以在shell脚本中实现,使得使用“Tab”键可以自动补全自定义的shell函数,相关命令有三个,compgen、complete和compopt。

1、compgen:

compgen [option] [word]

compgen命令根据option生成与word可能匹配的补全,并打印到标准输出中,这些选项可以是内建命令complete所支持的任何选项,但不能是“-p”和“-r”,如果使用了“-F”或“-C”,则由可编程补全功能设置的各个shell变量虽然仍可以使用,但它们的值却没什么作用。补全条目以相同的方式生成,就好像可编程补全代码用相同的补全选项直接生成了补全条目一样,如果指定了word,则只显示与之匹配的条目。

2、complete:

complete [-abcdefgjksuv] [-o comp-option] [-DE] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] name [name...]

complete-pr [-DE] [name...]

complete命令指定如何对各个名称进行补全。如果指定了选项“-p”或者没有指定任何选项,则把已有的补全方法用一种可以重新作为作为输入的格式打印出来。选项“-r”用以删除指定名称的补全方法,不指定名称时删除所有的名称的补全方法。选项“-D”的意思是其后的选项和动作将应用到默认命令补全,也就是说之前未定义的补全命令也可以补全。选项“-E”的意思是其后的选项和动作将应用到空命令补全,也就是说补全空白行。对于选项“-G”、“-W”、“-X”、“-P”和“-S”,应该使用括号进行保护,防止补全开始前被扩展。

“-o bashdefault”:如果没有生成补全条目,就使用bash默认的其它补全。

“-o default”:如果没有生成补全条目,就使用“readline”默认的文件名补全。

“-o dirnames”:如果没有生成补全条目,就进行目录名补全。

“-o filenames”:告诉“readline”生成文件名,以便进行与文件名相关的处理,例如在目录名后面加上斜杠,引用特殊字符,去掉行尾的空格,目的是用于shell函数。

“-o noquote”:告诉“readline”不引用文件名,默认会进行引用。

“-o nospace”:告诉“readline”在补全的名称后不添加空格,默认添加空格。

“-o plusdirs”:生成补全条目之后,还会进行目录名补全并把结果添加到其它动作得到的结果中。

“-A alias”:别名,同选项“-a”。

“-A arrayvar”:数组变量名。

“-A binding”:“readline”键绑定名。

“-A builtin”:shell内建命令名,同选项“-b”。

“-A command”:命令名,同选项“-c”。

“-A directory”:目录名,同选项“-d”。

“-A disabled”:不可用的shell内建命令名。

“-A enabled”:可用的shell内建命令名。

“-A export”:导出的shell变量名,同选项“-e”。

“-A file”:文件名,同选项“-f”。

“-A function”:shell函数名。

“-A group”:组名,同选项“-g”。

“-A helptopic”:内建命令help支持的帮助主题。

“-A hostname”:主机名,从shell环境变量HOSTFILE中获取。

“-A job”:作业名,同选项“-j”。

“-A keyword”:shell保留字,同选项“-k”。

“-A running”:正在运行的作业名。

“-A service”:服务名,同选项“-s”。

“-A setopt”:内建命令set的选项“-o”可用的参数。

“-A shopt”:内建命令shopt可接受的选项名。

“-A signal”:信号名。

“-A stopped”:暂停的作业名。

“-A user”:用户名,同选项“-u”。

“-A variable”:所有的shell变量名,同选项“-v”。

“-C command”:在子shell中执行命令,并把其结果作为补全条目。

“-F function”:在当前的shell环境中执行函数function,执行时,参数“$1”表示那个参数正在进行补全的命令名,参数“$2”表示补全的名称,参数“$3”表示补全的名称前面的单词,表示结束执行时,从数组变量COMPREPLY中获取补全条目。

“-G globpat”:使用文件名扩展模式globpat进行扩展以生成可能的补全条目。

“-P prefix”:在所有的选项应用到补全结果后,在结果前添加前缀prefix。

“-S suffix”:在所有的选项应用到补全结果后,在结果后添加后缀suffix。

“-W wordlist”:使用特殊变量IFS中的字符拆分单词列表wordlist,并扩展拆分后的每个单词,结果中与待补全单词

匹配的条目就是补全条目。

“-X filterpat”:filterpat是进行文件名扩展时使用的模式,它作用于通过前面的选项和参数生成的补全列表,并把每个与过滤模式匹配的条目删除,模式中前导的叹号表示否定,这时会删除与过滤模式不匹配的条目。

3、compopt:

compopt [-o option] [-DE] [+o option] [name]

compopt命令修改每个名称指定的补全选项,如果没有指定名称则修改当前执行的补全的选项,如果也没有指定选项,则显示每个名称或当前补全所用的选项。选项可能的取值就是上面的内建命令complete的有效选项。

linux set命令详解

linux系统下set命令是什么呢?下面是set命令的具体内容介绍:

1、set命令功能:

用来设置shell,set指令能设置所使用shell的执行方式,可依照不同的需求来做设置。

2、语法:

set [+-abCdefhHklmnpPtuvx]语法为set [-abefhkmnptuvxBCEHPT] [-o option-name] [argument…]或者 set [+abefhkmnptuvxBCEHPT] [+o option-name] [argument…]。

第一组与第二组都是set的选项,+号表示关闭选项,-号表示打开选项,最后一组argument是位置参数。

3、补充说明:

set指令能设置所使用shell的执行方式,可依照不同的需求来做设置。

4、参数:

-a标示已修改的变量,以供输出至环境变量。

-b使被中止的后台程序立刻回报执行状态。

-C转向所产生的文件无法覆盖已存在的文件。

-d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。

-e若指令传回值不等于0,则立即退出shell。

-f取消使用通配符。

-h自动记录函数的所在位置。

-H Shell可利用!加指令编号的方式来执行history中记录的指令。

-k指令所给的参数都会被视为此指令的环境变量。

-l记录for循环的变量名称。

-m使用监视模式。

-n只读取指令,而不实际执行。

-p启动优先顺序模式。

-P启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。

-t执行完随后的指令,即退出shell。

-u当执行时使用到未定义过的变量,则显示错误信息。

-v显示shell所读取的输入值。

-x执行指令后,会先显示该指令及所下的参数。

+参数取消某个set曾启动的参数。

5、set命令的其他特征:

开启选项之后需要关闭,再运行set+选项就可以了。

set后接的位置参数默认会赋值给环境变量$1,$2,$3......,位置参数的数量赋值为$#。

set命令不带选项与位置参数时,输出SHELL环境变量与SHELL函数。

建议在脚本的头部设置set-eux; set-o pipefail或者,按bash-eux-o pipefail script.sh方式执行脚本。

阅读剩余
THE END