如何在运维过程中对Shell内建命令
本篇文章给大家带来的内容是关于如何在运维过程中对Shell内建命令,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
:命令
一般格式为: :
这实际上是一个空命令。同常用来满足必须有命令出现的需求。
if who | grep jack > /dev/null ;then :else echo "jack is not logged in"fi
:命令会返回为0的退出状态
.命令
一般格式 . file
.命令会使Shell文件读取并执行指定的文件,就好像将文件中的命令直接输入一样。注意:file并不是非得可执行的,只要可读就行了。另外,Shell使用path变量查找file。
.progdefs
执行progdefs中的命令,file并不是在子Shell中执行的,当file中的命令执行完毕之后,其中所设置及修改的变量依然有效。
alias命令
一般格式:
alias name=string [name=string...]<br>
alias命令会将string分配给别名name。当name用作命令时,Shell会将其替换为string,然后执行命令行替换。(=前后不能有空格)
下列格式:
alias name <br>
会打印出name的别名,不使用参数的alias会列出所有的别名,alias会返回为0的退出状态码,除非给出的name没有别名。
bg命令
一般格式:
bg job_id
如果启用了作业控制,有job_id标识的作业会被置入后台,如果没有给出参数,则会将最近挂起的作业置入
break命令
一般格式:
break
break命令会立即终止最内的for、while和until循环。程序接着从循环之后的命令继续执行。
如果使用格式:
break n
内部第n层的循环自动被终止。
case命令
一般格式:
case value in pat<sub>1</sub>) command command ··· command;; pat<sub>2</sub>) command command ··· command;; pat<sub>3</sub>) command command ··· command;; esac
value会连续的和pat1、*可以匹配任何内容,通常出现在case中的最后一个模式以作为默认,或者作为万能条件。
在匹配模式中,可以使用Shell的元字符(*,?,[…]);字符|可以指定两种模式之间的”逻辑或”关系,例如:
pat1|pat2 表示pat1或pat2
cd命令
一般格式:
cd directory
该命令会使Shell将dircetory作为当前目录,如果忽略目录,Shell会将HOME变量中保存的目录设为当前目录。
如果Shell变量CDPATH为空,directory必须是一个完整的目录路径或当前目录的相对路径。
如果CDPATH不为空且directory并非完整路径,Shell会在CDPATH所保存的一系列由冒号分隔的目录中查找包含directory的目录。
示例:
cd documents/memos //切换到documents的memos目录cd //切换到HOME目录
cd命令会将Shell变量PWD设置成新的当前目录,将OLDPWD设置成上一个目录
continue命令
在for,while或until循环中执行该命令跳过循环中continue之后的语句,然后执行下一次循环>。
如果使用格式:
continue n
会跳过最内的第n层循环中剩下的语句,然后执行下一次循环。
echo命令
一般格式:
echo args
该命令会将args写入标准输出。args中每个单词之间由空格符分隔。在最后的会加上一个换行符。如果忽略args,结果就是往下跳一行。
eval命令
一般格式:
eval args
该命令会是Shell对args求值,然后执行求值结果,这实际上可以实现对命令行的二次扫描。
示例:
x='abc def'y='$x'echo $yxeval echo $yabc def
exec命令
一般格式:
exec command args
该命令会执行指定的command,并将args作为参数,和其他命令不同,command会替换当前进程(也就是说并不会创建新的进程)执行command之后,就不会再返回调用exec程序了。
如果只指定了I/O重定向,就会更改Shell的输入或输出。
示例:
exec /bin/sh 使用sh替换当前进程
exit命令
一般格式:exit n
该命令会立即终止当前Shell程序,该程序的退出状态码是整数n的值,如果没有使用n,则使用exit命令之前那条命令的退出状态码。
注意,直接在登录Shell中执行exit,其效果相当于登出系统。
export命令
一般格式:
export variables
该命令可以导出指定的变量,也就是说,这些变量的值会被传入到子Shell
false命令
一般格式:
false
该命令会返回非0的退出状态码
fc命令
一般格式:
fc -e editor -lnr first lastfc -s old=new first
该命令可用于编辑命令历史记录中的命令。可以指定从first到last的命令范围,first和last可以是命令编号或字符串,其中负数被视为相对于当前命令编号的偏移量,而字符串指定了以该字符串起始的最近的那条命令。命令会被读入编辑器,然后在退出编辑器时执行,如果没有指定编辑器,就用Shell变量的FCEDIT的值,如果没有设置FEDCIT,就使用ed。
-1选项可以列出范围在first和last之间的命令(也就是说不调用编辑器)。如果选择了-n选项,这些命令前面不会出现命令编号。
-r选项会颠倒命令出现的次序。
如果没有指定last,则默认使用first的值。如果也没有指定first,默认编辑上一条命令,列出前16条命令。
-s选项会执行选中的命令,无需事先编辑。
fg命令
一般格式:
fg job_id
如果启用了作业控制,由job_id指定的作业被带回前台,如果没有指定参数,将最近挂起的作业或者最近置入后台的作业带回前台。
jobs命令
该命令会打印当前活跃的作业的列表,如果指定了-l选项,还会列出没想作业的详细信息(包括其进程和ID)如果指定了-p选型,则只会列出进程ID
如果提供了可选的作业的id,只列出指定作业的详细信息。
以上就是如何在运维过程中对Shell内建命令的详细内容,更多请关注其它相关文章!