LinuxShell——内嵌命令
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——内嵌命令的更多相关文章
- bash 内嵌命令 printf 用于进制转换
printf - 格式化并显示数据 printf "%d" 0x10 printf "%x" 16
- [Shell] Backtick vs $() 两种方式内嵌值
使用反撇号(重音符)`command` 和 $(command) 都表示内嵌shell命令. for file in $(ls); do echo $file done for file in `ls ...
- Makefile---make内嵌函数及make命令显示 (九)
原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 这一节我们讲一下make的函数,在之前的章节已经讲到了几个函数:wildcard.patsubs ...
- 从头開始写项目Makefile(十):make内嵌函数及make命令显示
[版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] 这一节我们讲一下make的函数,在之前的章节已经讲到了几 ...
- 从头开始写项目Makefile(十):make内嵌函数及make命令显示【转】
转自:http://blog.csdn.net/shallnet/article/details/38314473#comments 版权声明:本文为博主原创文章,未经博主允许不得转载.如果您觉得文章 ...
- Hive的三种安装方式(内嵌模式,本地模式远程模式)
一.安装模式介绍: Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景. 1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错) ...
- 浅谈html5网页内嵌视频
更好的阅读体验:浅谈html5网页内嵌视频 如今在这个特殊的时代下:flash将死未死,微软和IE的历史问题,html5标准未定,苹果和谷歌的闭源和开源之争,移动互联网的大势所趋,浏览器各自为战... ...
- Makefile所有内嵌函数
一.文本处理函数以下是GNU make内嵌的文本(字符串)处理函数.1 $(subst FROM,TO,TEXT) 函数名称:字符串替换函数—subst. 函数功能:把字串“TEXT”中的 ...
- Makefile学习(二)条件判断和内嵌函数
第七章:Makefile的条件执行 条件语句可是是两个不同的变量.或者变量和常量值的比较: 7.1例子: 对变量“CC”进行判断,其值如果是“gcc ”那么在程序连接时使用库“libgnu.so”或者 ...
随机推荐
- ASP.Net MVC 路由及路由调试工具RouteDebug
一.路由规则 1.可以创建多条路由规则,每条路由的name属性不相同 2.路由规则有优先级,最上面的路由规则优先级越高 App_Start文件下的:RouteConfig.cs public stat ...
- 【C#】学习笔记(2)委托Delegate相关
泛型委托类型,同样是根据杨老师的视频来的. 直接上栗子
- 使用JS通过Web API执行批量操作,多个操作是一个事务!
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复235或者20161105可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Android8.1源码编译实践(Mac)
第0步:版本选择 AOSP版本选择很重要,如果选错了,会造成编译失败等各种问题,编译AOSP对Xcode的版本是有要求的: 比如:AOSP6.0-7.0,要求Xcode的版本是8.3,然而在MacOS ...
- PHP统计二维数组个数
count($arr) $arr = [ ['id'=>1,'name'=>'Tom'], ['id'=>2,'name'=>'Sun'], ['id'=>3,'name ...
- PHP多进程系列笔(转)
本系列文章将向大家讲解pcntl_*系列函数,从而更深入的理解进程相关知识. PCNTL在PHP中进程控制支持默认是关闭的.您需要使用 --enable-pcntl 配置选项重新编译PHP的 CGI或 ...
- 5G浪潮来袭,程序员在风口中有何机遇
导读:本文共2894字,预计阅读时间为9分钟.通过阅读本文,你将了解到5G的优势.即将燃爆的领域以及程序员在快速发展的5G产业中所需关注的技术. 5G时代已经来临 随着中美5G主导权之战的持续发酵,5 ...
- centos 的系统管理命令 service systemctl
centos 的 systemctl 命令 systemctl is-enabled *.service #查询服务是否开机启动 systemctl enable *.service # ...
- 如何让table中td与四周有间距
如何让table中td与四周有间距 方法一 在td下再添加一个会计元素 <tr> <td>第2节</td> <td>语文</td> < ...
- 【bzoj4154】(dfs序+kd-tree)
传送门 题意: 给出一颗以\(1\)为根的有根树,初始所有结点的颜色为\(1\). 之后有两个操作,一种是每次将距离\(a\)结点距离不超过\(l\)的所有儿子结点颜色染为\(c\):另一种是询问结点 ...