LinuxShell——内嵌命令

摘要:本文主要学习了Shell的常用内嵌命令。

alias命令

alias命令可以为指定命令定义一个别名。

基本语法

查看所有别名:

 alias

设置别名:

 alias 别名=原命令(有空格需要使用引号包裹)

删除别名:

 unalias 别名

执行和别名相同的命令

使用命令的绝对路径:

 [root@localhost ~]# /usr/bin/vim test

切换到命令所在的目录,在命令前添加“./”:

 [root@localhost ~]# ./vim ~/test

在命令前面添加“\”:

 [root@localhost ~]# \vim test

让别名永久有效

我们通过alias命令设置的别名,仅限于在当前的Shell中使用,如果系统重启了,那么新设置的别名就失效了。

如果想让别名永久有效的话,就需要把所有的别名设置方案加入到家录下的.alias文件中(如果系统中没有这个文件,你可以创建一个),然后在.bashrc文件中增加这样一段代码:

 # Aliases
if [ -f ~/.alias ]; then
. ~/.alias
fi

这样设置后,无论怎样重启系统,都不会影响设置的别名啦。

echo命令

echo命令可以将指定字符串打印到屏幕。

基本语法

 echo [选项] 输出的内容

选项说明

 -n:表示输出之后不换行。
-e:表示对于转义字符按对应的方式进行处理。

使用举例

 [root@localhost ~]# echo 'Hello Word'
Hello Word
[root@localhost ~]#

source命令

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

source命令也称为“点命令”,也就是一个点符号“.”,是bash的内部命令。

source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

基本语法

 source filename
. filename

使用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里面。

fc命令

使用fc命令可以从历史记录中选择命令列表。

基本语法

编辑上一条命令并执行:

 fc

打开一个编辑器去修改或重新执行以前输入的命令:

 fc [-r] [-e Editor] [First] [Last]

生成一个以前输入的命令的列表:

 fc -l [-n] [-r] [First] [Last]

生成带执行时间的以前输入的命令的列表:

 fc -t [-n] [-r] [First] [Last]

选项说明

 -e Editor:使用指定的编辑器编辑命令。Editor参数应是一个命令名称。该命令用PATH环境变量指定位置。当没有指定-e标志时,环境变量FCEDIT中的值被用作缺省值。如果环境变量FCEDIT是空值或没有设置,则使用ed编辑器。
-l:列出了历史文件中的命令。不调用编辑器去修改它们。按照First和Last参数所指定的顺序写命令,就象-r标志所作用的,在每一个命令的前面有一个命令编号。
-n:当与-l标志一起使用时,隐藏命令编号。
-r:逆转所列出命令的顺序(当使用-l标志)或者逆转所编辑的命令顺序(当没有指定-l标志时)。
-t:在历史文件中列出命令及其执行时间。工作过程与-l标志类似,但是还显示命令的执行时间。
First和Last:选择要列出或编辑的命令。HISTSIZE环境变量值确定了能够访问到的以前所输入命令的数量。
First参数和Last参数必须具有以下数值中的一个:
[+]Number:表示一个特定的命令编号。-l标志可以显示命令编号。缺省值为一个+字符。
-Number:表示一个以前执行的命令,由存储在历史列表中的命令编号指定。例如,-1指出了前一个刚执行过的命令。

使用举例

 [root@localhost ~]# fc
echo 'Hello Word ...'
Hello Word ...
[root@localhost ~]# fc -l -
fc -l -
[root@localhost ~]#

history命令

history命令用于显示历史记录和执行过的指令命令。系统默认保留1000条。

history命令读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。

history命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。默认是不显示命令的执行时间,命令的执行时间,history已经记录,只是没有显示。

如想查询某个用户在系统上执行了什么命令,可以使用root用户身份登录系统,检查Home目录下的用户主目录下的“.bash_history”文件,该文件记录了用户所使用的命令和历史信息。

显示执行历史记录时间

默认情况下,history并不记录命令的执行时间,分析起来很困难。我们可以使用HISTTIMEFORMAT在历史中显示TIMESTAMP。

把 export HISTTIMEFORMAT='%F %T ' 命令加入到~/.bashrc中即可在登录后自动开启history时间戳了。添加完成后,执行 source .bashrc 让其生效。仅针对当前账号有效。

基本语法

 history [选项]

选项说明

 -c:清空命令历史。
-d 命令号:删除历史中指定的命令。
n:显示最近的n条历史。
-a:追加本次会话新执行的命令历史列表至历史文件,因为多终端所以如果想看当前都发生了什么操作就可以执行-a进行查看。
-n:读历史文件(本地数据)中未读过的行到历史列表(内存数据)。
-r:读历史文件(本地数据)附加到历史列表(内存数据)。
-w:保存历史列表(内存数据)到指定的历史文件(本地数据)。
-s:展开历史参数成一行,附加在历史列表后。用于伪造命令历史。

使用举例

 [root@localhost ~]# history
history
history
history
[root@localhost ~]#

jobs命令

jobs命令可以用来查看当前终端放入后台的工作,工作管理的名字也来源于jobs命令。

基本语法

 jobs [选项]

选项说明

 -l:列出进程的PID号。
-p:只列出进程的PID号。
-r:只列出运行中的进程。
-s:只列出已停止的进程。
-n:只列出上次发出通知后改变了状态的进程。

bg命令

bg命令用于把前台工作放到后台执行。

基本语法

 bg %进程号

选项说明

注意,在使用此命令时,%可以省略。

fg命令

fg命令用于把后台工作恢复到前台执行。

基本语法

 fg %进程号

选项说明

注意,在使用此命令时,%可以省略,但若将%和进程号全部省略,则此命令会将带有+号的工作恢复到前台。

kill命令

kill命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。

基本语法

 kill [选项] 进程号

选项说明

 -:代表EXIT,程序退出时收到该信息。
-:代表HUP,挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
-:代表INT,表示结束进程,但并不是强制性的,常用的“Ctrl+C”组合键发出就是一个“kill -”的信号。
-:代表QUIT,表示退出。
-:代表KILL,杀死进程,即强制结束进程。
-:代表SEGV,段错误。
-:代表TERM,正常结束进程,是kill命令的默认信号。

LinuxShell——内嵌命令的更多相关文章

  1. bash 内嵌命令 printf 用于进制转换

    printf - 格式化并显示数据 printf "%d" 0x10 printf "%x" 16

  2. [Shell] Backtick vs $() 两种方式内嵌值

    使用反撇号(重音符)`command` 和 $(command) 都表示内嵌shell命令. for file in $(ls); do echo $file done for file in `ls ...

  3. Makefile---make内嵌函数及make命令显示 (九)

    原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 这一节我们讲一下make的函数,在之前的章节已经讲到了几个函数:wildcard.patsubs ...

  4. 从头開始写项目Makefile(十):make内嵌函数及make命令显示

    [版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com]     这一节我们讲一下make的函数,在之前的章节已经讲到了几 ...

  5. 从头开始写项目Makefile(十):make内嵌函数及make命令显示【转】

    转自:http://blog.csdn.net/shallnet/article/details/38314473#comments 版权声明:本文为博主原创文章,未经博主允许不得转载.如果您觉得文章 ...

  6. Hive的三种安装方式(内嵌模式,本地模式远程模式)

    一.安装模式介绍:     Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景.     1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错)   ...

  7. 浅谈html5网页内嵌视频

    更好的阅读体验:浅谈html5网页内嵌视频 如今在这个特殊的时代下:flash将死未死,微软和IE的历史问题,html5标准未定,苹果和谷歌的闭源和开源之争,移动互联网的大势所趋,浏览器各自为战... ...

  8. Makefile所有内嵌函数

    一.文本处理函数以下是GNU make内嵌的文本(字符串)处理函数.1       $(subst FROM,TO,TEXT) 函数名称:字符串替换函数—subst. 函数功能:把字串“TEXT”中的 ...

  9. Makefile学习(二)条件判断和内嵌函数

    第七章:Makefile的条件执行 条件语句可是是两个不同的变量.或者变量和常量值的比较: 7.1例子: 对变量“CC”进行判断,其值如果是“gcc ”那么在程序连接时使用库“libgnu.so”或者 ...

随机推荐

  1. arcgis api 3.x for js 地图加载多个气泡窗口展示(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  2. 版本管理·玩转git(推到远程仓库)

    经过前面的练习,你在本地的仓库里管理代码已经比较熟练了,但如果是团队开发呢,如何配合起来呢? 我们可以把版本仓库放在互联网上,开发者把自己最新的版本推到线上仓库,同时,把线上仓库的最新代码拉到自己本地 ...

  3. linux基础学习(二)ls命令以及文件访问权限例(-rw-r-r--)

    ls命令 |命令选项|作用| |:-----:|:----:| |ll| 显示文件得详细信息| |ls -a |显示文件和隐藏文件| |ls -t|以文件和目录的更改时间排序| |ls -m|用&qu ...

  4. Linux—主机扫描工具(Nmap)

    Nmap包含五项基本功能: 主机探测 (Host Discovery) 端口扫描 (Port Scanning) 版本检测 (Version Detection) 操作系统侦测 (Operating ...

  5. Ingo Molnar 的实时补丁

    一.简介 Ingo Molnar 的实时补丁是完全开源的,它采用的实时实现技术完全类似于Timesys Linux,而且中断线程化的代码是基于TimeSys Linux的中断线程化代码的.这些实时实现 ...

  6. 将网站发布到阿里云的Linux服务器上(简述)

    这里以idea的springboot项目为例(打成jar包) 这里去阿里云购买服务器的过程就不说了,自行百度 还有这篇只是简述,因为把一个项目部署到服务器要做的事情还是不少的,然后没学过Linux的建 ...

  7. python pip 升级 或者换源

    1. 临时换源python -m pip install --upgrade pip -i https://pypi.douban.com/simple pip国内的一些镜像   阿里云  https ...

  8. 学习51cto中美团中的小知识点--组件实现按需求加载

    1====>vue.20脚手架的创建 cnpm install --global vue-cli 全局安装脚手架 vue init webpack my-project 创建项目 Use ESL ...

  9. 4. jenkins 构建任务

    这边说一下 ,服务器的分布.  因为我这边 测试环境的项目比较多,不能修改主机名 1号机器 节点机器(node) 最终项目发布到这台机器 2号机器  jenkins jenkins的部署,发布 3号机 ...

  10. tensorboard运行使用(排坑)记录一

    首先运行如下代码(路径根据你自己的要求更改) writer = tf.summary.FileWriter("G:/tensorflow/graph", tf.get_defaul ...