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”或者 ...
随机推荐
- HTML学习 day03
表单 表单 表单:表单域:包含了处理表单数据所用的程序的URL以及数据提交到服务器的方法. 表单控件:(对象.元素):包含了文本框.密码框.隐藏.多行文本框(文本域).复选框.单选框.下拉 ...
- SQLMAP之tamper详解
sqlmap 是一款注入神器广为人知,里面的 tamper 常常用来绕过 WAF ,很实用的模块,但是却常常被新手忽略(比如我),今天就整理总结一下 tamper 的用法以及 tamper 的编写 P ...
- Linux下设置root密码
如下面的代码所示: sudo passwd [sudo] geeksong 的密码: 输入新的 UNIX 密码: 重新输入新的 UNIX 密码: passwd:已成功更新密码 更性的unix密码就是r ...
- 禁止ViewPager滑动
实现如下: public class NoScrollViewPager extends ViewPager { public NoScrollViewPager (Context context) ...
- 一文解读DevOps工具链 (转)
在列出DevOps 工具链之前,介绍一下什么是DevOps,虽然DevOps这个概念现在还没有标准的定义,但我们可以追溯一下其过去九年的历史发展过程(从2009年-2017年),列出几个相对明确又有所 ...
- mysql综合性练习
题目描述 设定有一个数据库,里面有4张表: 学生表(student) 课程表(course) 成绩表(score) 教师信息表(teacher) 表结构如下: 表一_学生表(student) 属性名 ...
- liteos分散加载(十四)
1. 概述 1.1 基本概念 分散加载是一种实现特定代码快速启动的技术,通过优先加载特定代码到内存,达到缩短从系统开机到特定代码执行的时间.可被应用来实现关键业务的快速启动. 嵌入式系统通过uboot ...
- 【error】C++:fatal error LNK1169: 找到一个或多个多重定义的符号
编译时报错 : fatal error LNK1169: 找到一个或多个多重定义的符号 解答: 发生这种错误就是在一个项目定义了多个main函数的问题. *C++中一个项目即一个程序,多个文件只能有一 ...
- 【BZOJ2437】[Noi2011]兔兔与蛋蛋(博弈+二分图)
传送门 题意: 给出一个\(n*m\)的棋盘,上面有若干个黑色棋子,若干个白色棋子,还有一个空格. 每次先手选择一个空格,将它与相邻的某个白色棋子交换:后手则选择一个空格,与相邻的某个黑色棋子交换. ...
- logistic 回归(线性和非线性)
一:线性logistic 回归 代码如下: import numpy as np import pandas as pd import matplotlib.pyplot as plt import ...