bash内建命令
bash内建命令
1、local命令
基本介绍
local命令是用来定义一个局部变量的,它只能定义在函数中,并且随着函数的结束而被销毁
基本语法
local [option] name[=value]
使用案例
#!/bin/bash
function func(){
local key=
echo $key
}
func
2、alias命令
基本介绍
alias命令使用来设置一个命令的别名。
为什么需要设置别名?
当我们使用一个命令时,你可能需要通过选项来打开这个命令的许多功能,但是这个命令你又常常使用,因此, 每次你使用都敲击一遍是很麻烦的事情,因此,bash提供了一个别名alias。
基本语法
alias [-p] [name[=value] ... ]
使用注意
当设置了一个别名后,使用这个命令就会默认去找别名来执行,当你想要需要改变一些参数,那么这样就麻烦了,因此,bash提供了一种做法,可以屏蔽别名只需在命令前面加一个反斜线\;当然还有另一种做法就是使用命令的全路径
例子:
\cp /etc/fstab /tmp/
/bin/cp /etc/fstab /tmp/
取消一个别名使用unalias name命令
使用案例
[root@oldboy ~]# alias alias cp='cp -i' alias grep='grep --color' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' [root@oldboy ~]# alias mysql='mysql -u root -p123456 -h localhost' [root@oldboy ~]# alias alias cp='cp -i' alias grep='grep --color' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias mysql='mysql -u root -p123456 -h localhost'
3、logout命令
基本介绍
bash提供了一个logout命令可以退出当前登录bash程序
当然,我们也能使用bash提供的快捷键ctrl+d退出登录bash程序
4、jobs命令
基本介绍
jobs命令可以查看后台运行的程序。当运行一个程序时,他默认时在前台运行,也就是阻塞在当前shell进程上运行,你只有退出当前程序才能去执行其他命令,因此,这样不是很方便去处理其它命令,此时bash提供了一个&操作符,使用一个命令或者说程序运行在后台。
基本语法
jobs [-lnprs]
常用选项
-l :(小写 L)提供了更多的关于列出的每一个作业的信息。此信息包括了作业号、当前作业、进程组标识、状态和启动作业的命令。
-n :显示自从最后一次通知后停止或退出的作业。
-p:显示了所选定的作业的进程组引导符的进程标识。
案例演示
[root@oldboy scripts]# cat while.sh
#!/bin/bash
while true;do
echo >/dev/null
sleep
done;
[root@oldboy scripts]# bash while.sh &
[]
5、fg命令
基本介绍
当我们将一个程序运行在后台后,又想将它拿到前台来执行,那么可以使用fg命令
基本语法
fg [jobsID]
使用案例
[root@oldboy ~]# jobs []+ Stopped vim /etc/fstab [root@oldboy ~]# fg vim /etc/fstab # # /etc/fstab # Created by anaconda on Mon Dec :: # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(), findfs(), mount() and/or blkid() for more info # /dev/mapper/vg_oldboy-lv_root / ext4 defaults UUID=bae75a9c-b1d0--b822-da366629a93b /boot ext4 defaults /dev/mapper/vg_oldboy-lv_swap swap swap defaults tmpfs /dev/shm tmpfs defaults devpts /dev/pts devpts gid=,mode= sysfs /sys sysfs defaults proc /proc proc defaults
6、bg命令
基本介绍
将linux 的作业放入到后台运行
基本语法
bg [%jobsID]
7、disown命令
基本介绍
disown命令使已经在运行的用户进程使其不受HUP信号的影响
基本语法
disown [options...]
常用选项
如果不指定选项表示从作业表中全部删除
-h jobspec:来使某个作业忽略HUP信号
-ah:来使正在运行的作业忽略HUP信号。
-rh:来使正在运行的作业忽略HUP信号。
8、nohup命令
基本介绍
当我们使用logout命令时,就会给终端发送 hangup 信号来通知其关闭所有子进程。但是,有时候我们不希望当前终端退出后进程就被终止了,因此,提供了nohup命令或者setsid命令来拒绝接受hup信号或者说忽略hup信号
基本语法
nohup|setsid COMMAND
使用案例
模拟在已有ssh模拟终端上开启一个忽略后台运行的ssh客户端登录程序,然后退出当前shell登录程序,然后再登录查看那个忽略后台运行的ssh客户端登录程序
使用案例
[
root@oldboy ~]# nohup ping www.sohu.com & [] [root@oldboy ~]# jobs []+ Running nohup ping www.sohu.com & [root@oldboy ~]# logout [root@oldboy ~]# ps -ef|grep www root : ? :: ping www.sohu.com
9、mapfile命令
基本语法
从标准输入中或者文件中读取指定的行到数组变量中。mapfile和readarray作用类似
基本语法
mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
常用选项
-n count:指定要读取多少行
-O index:表示从哪个位置开始读取,默认位置是0
-s count:放弃读取count行
-u 文件:表示从文件中读取内容到数组而不是从标准输入中读取到数组
10、pushd命令
基本介绍
将一个目录路径加入到一个栈中,并且切换当指定的目录下去,同时每次pushd进入这个路径栈后会打印当前栈中的路径有哪些路径
基本语法
pushd [paths....]
基本使用
[root@oldboy CA]# pushd /tmp /tmp /etc/pki/CA [root@oldboy tmp]# pushd /usr /usr /tmp /etc/pki/CA [root@oldboy usr]# pushd /tmp /usr /etc/pki/CA
11、popd命令
基本语法
意为弹出的意思,对于栈这种数据结构来说,弹出一般是弹出后pushd进去的路径。但是popd后的路径,在路径栈中不能找到,除非再一次pushd。
基本语法
popd [options...]
常用选项
+N:表示将第N个目录删除,但是是从左边开始计数的(注意:N是从0
开始的),同时弹出时会切换到弹出的目录
-N:表示将第N个目录删除,但是是从右边开始计数的(注意:N是从0
开始的),同时弹出时会切换到弹出的目录
-n:表示弹出时不切换目录
基本使用
[root@oldboy etc]# pushd /bin /bin /etc /tmp /usr /etc/pki/CA [root@oldboy bin]# popd + /bin /tmp /usr /etc/pki/CA [root@oldboy bin]# popd + /tmp /usr /etc/pki/CA [root@oldboy tmp]# pushd /etc/ /etc /tmp /usr /etc/pki/CA [root@oldboy etc]# popd - /etc /tmp /etc/pki/CA
12、break命令
基本语法
停止一个循环的执行,与这个相似的还有continue,只不过这个是跳过本次循环
基本语法
continue [n]
break [n]
基本使用
#!/bin/bash
declare -i x=
while true;do
if [ $x -eq ];then
break
fi
let x=$x+
echo $x
done
[root@oldboy scripts]# bash while.sh
13、printf命令
基本介绍
printf命令用于格式化输出
基本语法
printf FORMAT
格式化输出字符
%%:转义%
\n:换行
\e:回退
\t:制表符
基本使用
[root@oldboy ~]# printf "as\tdaa" as daa
14、builtin命令
基本介绍
允许用户自定义与bash内建命令相同的函数,但是调用时需要使用builtin命令来明确指明是调用自定义的还是内建的
基本语法
builtin [COMMAND [ARGS...]]
15、pwd命令
基本介绍
打印当前的绝对路径
基本语法
pwd [-LP]
16、dirs命令
基本介绍
打印目录栈中的一些目录路径信息,这些路径是通过pushd命令添加进去的
基本语法
dirs [options...]
常用选项
-p:将目录栈中的路径垂直显示
-l:将目录栈中的路径横向显示
-v:将目录内容带索引的显示
-c:清除目录栈中所有的路径
注意:如果在目录栈中存在当前所在的路径,那么清除全部路径时,不能清除当前所在路径
基本使用
[root@oldboy etc]# pushd /var /var /etc [root@oldboy var]# pushd /usr /usr /var /etc [root@oldboy usr]# pushd /bin /bin /usr /var /etc [root@oldboy bin]# dirs -v /bin /usr /var /etc [root@oldboy bin]# dirs -l /bin /usr /var /etc [root@oldboy bin]# dirs -p /bin /usr /var /etc [root@oldboy bin]# cd [root@oldboy ~]# dirs -p ~ /usr /var /etc [root@oldboy ~]# dirs -l /root /usr /var /etc [root@oldboy ~]# dirs -v ~ /usr /var /etc
17、enable命令
基本介绍
显示启用或者禁用的内建命令
基本语法
enable [options...] [COMMAND]
常用选项
-a [COMMAND]:显示所有的启用的内建命令
-n COMMAND:关闭指定的内建命令
基本使用
[root@oldboy ~]# enable -a |grep let enable let [root@oldboy ~]# enable -n let [root@oldboy ~]# enable -a |grep let enable -n let [root@oldboy ~]# let x= -bash: let: command not found [root@oldboy ~]# enable -a let [root@oldboy ~]# let x= [root@oldboy ~]# echo $x [root@oldboy ~]# enable -a |grep let enable let
18、cd命令
基本介绍
进入某个目录,但是这个目录必须有可执行的权限
基本语法
cd [DIR...]
基本使用
[root@oldboy ~]# cd /home/oldboy [root@oldboy oldboy]#
使用注意
cd命令后边可以不接目录表示进入用户的家目录,当然我们可以是用cd ~进入家目录。同时cd命令还有一个小技巧,就是使用cd - ,能够在两个目录之间来回切换。这个来回切换是可以用一个环境变量来维护的,旧路劲环境变量$OLDPWD
基本使用
[root@oldboy ~]# cd $OLDPWD [root@oldboy home]# cd $OLDPWD [root@oldboy ~]# cd $OLDPWD [root@oldboy home]# cd $OLDPWD [root@oldboy ~]# cd $OLDPWD [root@oldboy home]# cd $OLDPWD
19、read命令
基本介绍
从标准输入中或者文件中读取内容存入变量中
基本语法
read [-a aname] [-d delim] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
常用选项
-a arr:将分割后的字段一次存入指定的arr数组中
-p str:提示字符串
-t time:超出时间就退出
-s:静默模式
-d delimiter:指定分隔符
-n:限制读取n个字符自动结束读取(在没有读满n个字符前,如果按下了回车或者换行符,那么都会自动结束)
-N:严格要求读满N个字符才自动结束读取(即使中途遇到回车或者换行都不结束)
-u fd:表示从文件中读取内容
-e:表示如果输入内容来自终端,则调用readline库进行读取
案例演示
[root@oldboy ~]# read -a arr
[root@oldboy ~]# echo ${arr[]}
[root@oldboy ~]# echo ${arr[]}
[root@oldboy ~]# echo ${arr[]}
[root@oldboy ~]# read -n -a arr
aaaaa[root@oldboy ~]# echo ${arr}
aaaaa
a[root@oldboy test]# read -d "a" -a arr //a字符作为终端结束输入字符
s
d
f
g
h
h
r
a[root@oldboy test]# echo ${arr[]} //结束输入
d
[root@oldboy test]# echo ${arr[]}
s
未完,待续........
bash内建命令的更多相关文章
- Linux - Bash shell的功能;内建命令type
命令编修能力 (history): bash 的功能里头,相当棒的一个就是『他能记忆使用过的命令!』 这功能真的相当的棒!因为我只要在命令列按『上下键』就可以找到前/后一个输入的命令!而在很多 dis ...
- Linux内建命令和外部命令
Linux命令有内部命令(内建命令)和外部命令之分,内部命令和外部命令功能基本相同,但也有些细微差别. [内部命令 vs. 外部命令] (1)内部命令实际上是shell程序的一部分,其中包含的是一些比 ...
- Bash shell的内建命令:type
type指令是用来观察指令时来自于外部指令还是内建在bash中的指令. type [-tpa] name 选项与参数: :不加任何选项与参数时,type会显示出name是外部指令还是bash内建指 ...
- Bash Shell内建命令和保留字
Bash Shell内建命令和保留字命令含义!保留字,逻辑非:不做任何事,只做参数展开.读取文件并在shell中执行它alias设置命令或命令行别名bg将作业置于后台运行bind将关键字序列与read ...
- BASH BUILTIN COMMANDS 内建命令
除非另外说明,这一章介绍的内建命令如果接受 - 引导的选项,那么它也接受 -- 作为参数,来指示选项的结束 : [arguments] 没有效果:这个命令除了扩展 arguments 并且作任何指定的 ...
- shell的内建命令和外部命令
shell的内建命令和外部命令 Shell执行的命令可以分为内建命令(built-in)和外部命令(external),前者是构建在shell内部:后者是一个独立的文件(可以是二进制文件,也可以是一个 ...
- Linux编程 10 (shell外部命令与内建命令,alias ,type命令)
一. 内部命令 Linux命令有内部命令(内建命令)和外部命令之分,内部命令和外部命令功能基本相同,但也有些细微差别.内部命令不需要使用子进程来执行,它们已经和shell编译成一体,作为shell工 ...
- 自学Linux Shell5.2-shell内建命令history alias
点击返回 自学Linux命令行与Shell脚本之路 5.2-shell内建命令history alias 外部命令:有时称为文件系统命令,是存在于bash shell之外的程序,通常位于/bin./u ...
- Linux Shell 内建命令:冒号(:)
https://blog.csdn.net/honghuzhilangzixin/article/details/7073312/ 在Linux系统中,冒号(:)常用来做路径的分隔符(PATH),数据 ...
随机推荐
- MVP技术沙龙上海站-SQL BI
5月,微软爱好者们齐聚一起,在上海港汇中心,参加<MVP技术沙龙上海站-SQL BI>系列讲座,下面是现场图片.
- 初遇sass的两个小问题
关于sass大家都知道是一种css的开发工具,原本的css没有变量 参数一类的东西,所以比较死 效率较慢. sass就是在css里面加入了一些编程的元素如变量等,让css能够更灵活,提高效率. 刚接触 ...
- Python的魔术方法总结
魔术方法:再不需要程序员定义,本身就存在类中的方法就是魔术方法. 魔术方法通常都长这样:__名字__. 1.__str__和__repr__ 为了方便记忆看如下列子 class Course: def ...
- hibernate @OneToMany等注解设置查询过滤条件
如实体PdOrg对象中有users对象,数据库user表有字段DEL_FLAG(0:删除:1:未删除): private List<User> users= new ArrayList&l ...
- 配置solr6.2
1 解压solr ,把 solr-6.2.0\server\solr-webapp下的 webapp 文件夹拷贝到tomcat 的webapps下,重命名为solr,也可以是其他名字: ( 注意,此处 ...
- python识别图片中的代码。
在看并发编程网的时候,有些示例代码是以图片的形式出现的,要是此时自己想复制下来的话,只能对着图片敲了,很不爽,于是搜了一下识别图片的网站,有! 把图片上传上去解析,下来txt文本,打开一看,大部分能解 ...
- LeetCode 102 二叉树的层次遍历
题目: 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 ...
- OO第二单元的总结
三周复三周,一轮又一轮,我似乎已经将OO是为我的生活必须品了.在与同学吐槽者身负-3楼与20楼重任的A电梯君,以及我们都是上一层下两层不用电梯的五号青年的等等欢声笑语中结束了第二轮的OO作业.当然这次 ...
- java基础知识—类和对象
1.对象的特征---类的属性 每个对象的每个属性都有特定的值 对象的操作---类的方法 2.封装 对象同时具有属性和方法两项属性. 对象的属性和方法同时被封装在一起,共同体现事物的特性,二者相辅相成, ...
- 刚下了VS2010不会用,求大神指点迷津
刚下了VS2010不会用,求大神指点迷津 [菌菌][C语言MOOC]第七周计算分数精确值(10分) thinkphp3.1Calltoamemberfunctionget()onnull java提示 ...