Linux-centos6.5-(第七篇)shell内建命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LaoYang_110/article/details/89388768

目录

 

shell内建命令

Shell alias:给命令创建别名

unalias:删除别名

Shell echo命令:输出字符串


shell脚本部分参照:Linux Shell脚本学习指南http://c.biancheng.net/shell/

进行学习,过程中对脚本进行编写运行,部分脚本粘贴出执行结果。

shell内建命令

内建命令会比外部命令执行得更快,执行外部命令时不但会触发磁盘 I/O,还需要 fork 出一个单独的进程来执行,执行完成后再退出。而执行内建命令相当于调用当前 Shell 进程的一个函数。
下表列出了 Bash Shell 中直接可用的内建命令。
 

Bash Shell 内建命令

命令

说明

:

扩展参数列表,执行重定向操作

.

读取并执行指定文件中的命令(在当前 shell 环境中)

alias

为指定命令定义一个别名

bg

将作业以后台模式运行

bind

将键盘序列绑定到一个 readline 函数或宏

break

退出 for、while、select 或 until 循环

builtin

执行指定的 shell 内建命令

caller

返回活动子函数调用的上下文

cd

将当前目录切换为指定的目录

command

执行指定的命令,无需进行通常的 shell 查找

compgen

为指定单词生成可能的补全匹配

complete

显示指定的单词是如何补全的

compopt

修改指定单词的补全选项

continue

继续执行 for、while、select 或 until 循环的下一次迭代

declare

声明一个变量或变量类型。

dirs

显示当前存储目录的列表

disown

从进程作业表中刪除指定的作业

echo

将指定字符串输出到 STDOUT

enable

启用或禁用指定的内建shell命令

eval

将指定的参数拼接成一个命令,然后执行该命令

exec

用指定命令替换 shell 进程

exit

强制 shell 以指定的退出状态码退出

export

设置子 shell 进程可用的变量

fc

从历史记录中选择命令列表

fg

将作业以前台模式运行

getopts

分析指定的位置参数

hash

查找并记住指定命令的全路径名

help

显示帮助文件

history

显示命令历史记录

jobs

列出活动作业

kill

向指定的进程 ID(PID) 发送一个系统信号

let

计算一个数学表达式中的每个参数

local

在函数中创建一个作用域受限的变量

logout

退出登录 shell

mapfile

从 STDIN 读取数据行,并将其加入索引数组

popd

从目录栈中删除记录

printf

使用格式化字符串显示文本

pushd

向目录栈添加一个目录

pwd

显示当前工作目录的路径名

read

从 STDIN 读取一行数据并将其赋给一个变量

readarray

从 STDIN 读取数据行并将其放入索引数组

readonly

从 STDIN 读取一行数据并将其赋给一个不可修改的变量

return

强制函数以某个值退出,这个值可以被调用脚本提取

set

设置并显示环境变量的值和 shell 属性

shift

将位置参数依次向下降一个位置

shopt

打开/关闭控制 shell 可选行为的变量值

source

读取并执行指定文件中的命令(在当前 shell 环境中)

suspend

暂停 Shell 的执行,直到收到一个 SIGCONT 信号

test

基于指定条件返回退出状态码 0 或 1

times

显示累计的用户和系统时间

trap

如果收到了指定的系统信号,执行指定的命令

type

显示指定的单词如果作为命令将会如何被解释

typeset

声明一个变量或变量类型。

ulimit

为系统用户设置指定的资源的上限

umask

为新建的文件和目录设置默认权限

unalias

刪除指定的别名

unset

刪除指定的环境变量或 shell 属性

wait

等待指定的进程完成,并返回退出状态码

 

Shell alias:给命令创建别名

使用 alias 当然也可以自定义别名,比如说一般的关机命令是shutdown-h now,写起来比较长,这时可以重新定义一个关机命令,以后就方便多了。使用 alias 定义的别名命令也是支持 Tab 键补全的,如下所示:

alias myShutdown='shutdown -h now'

alias rb='reboot'

 

注意,这样定义别名只能在当前 Shell 环境中有效,换句话说,重新登录后这个别名就消失了。为了确保永远生效,可以将该别名手动写入到用户主目录中的.bashrc文件。

修改用户下.bashrc导致出错

修改了//.bashrc 后不能使用

先在命令端输入这些命令  export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

然后 用vi 打开/root/.bashrc   最后一行加入export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin  然后保存退出

然后 source  /root/.bashrc  使修改的东西生效

 

unalias:删除别名

使用 unalias 内建命令可以删除当前 Shell 环境中的别名。unalias 有两种使用方法:

第一种用法是在命令后跟上某个命令的别名,用于删除指定的别名。

第二种用法是在命令后接-a参数,删除当前 Shell 环境中所有的别名。

 

同样,这两种方法都是在当前 Shell 环境中生效的。要想永久删除在.bashrc文件中定义的别名,只能进入该文件手动删除。

# 删除 ll 别名

[root@e-bai ~]# unalias ll

# 再次运行该命令时,报“找不到该命令”的错误,说明该别名被删除了

Shell echo命令:输出字符串

不换行

echo 命令输出结束后默认会换行,如果不希望换行,可以加上-n参数,如下所示:

输出转义字符

默认情况下,echo 不会解析以反斜杠\开头的转义字符。比如,\n表示换行,echo 默认会将它作为普通字符对待。请看下面的例子:

[root@localhost ~]# echo "hello \nworld"

hello \nworld

 

我们可以添加-e参数来让 echo 命令解析转义字符。例如:

[root@localhost ~]# echo -e "hello \nworld"

hello

world

 

\c 转义字符

有了-e参数,我们也可以使用转义字符\c来强制 echo 命令不换行了。请看下面的例子:

 

猜你喜欢

转载自blog.csdn.net/LaoYang_110/article/details/89388768
今日推荐