Linux运维+系统服务搭建(一)bash命令及其特性
2016-09-25 19:43
253 查看
shell:外壳程序
GUI:Gnome,RDE,Xfce
GLI:sh,,csh(接近c语言),ksh(商业化)—->bash最强大功能遵循开源,zsh也比较强大但没有流行
当前所有系统默认都是bash可以支持:
程序:唯一
进程:程序的副本,程序的实例(带有内核管理的生命周期)
进程:每个进程不知道,当前主机上只存在内核和当前进程,不知道其他进程的存在。
用户工作环境:
bash:#管理员
$普通用户
shell存在子shell,shell,子shell存在包含关系
我们可以连续bash三次通过pstree查看下bash命令最后通过exit退出
为什么要说这个包含关系:
那么刚才说的shell是个进程,每个进程不知道,当前主机上只存在内核和当前进程,不知道其他进程的存在。
所以如果存在包含关系情况我们需要做的是处理权限的话,那么不同父子的进程权限是互不影响的。
那么还有个注意点sh特性的话,父类和子类可能不一样那么bash下面子类可以是csh也可以是ksh
bash特性:
1、命令历史,命令补全
2、管道,重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名通配
7、变量
8、编程—-以后就是所谓的脚本
命令行编辑:
命令光标跳转:ctrl+a:跳到命令行首
ctrl+e:跳到命令行尾
ctrl+d删除内容光标位置
ctrl+u删除光标至行首内容
ctrl+k删除光标至行尾的内容
ctrl+l清屏====clear
命令历史:
bash自动记录过去执行的内容,会将其保存到内核的内存区域
history查看我使用过得所有命令历史
不想让别人看见某些记录
可以通过history删除
清空整个命令历史:history -c
删除指定行内的数据;history -d 200(指行数)
删除从offset开始删除多少个:history -d offset
用户正常退出的话即使删除了那么我们可以通过.bash_history
在家目录下面存储
将内核缓存区内容保存到历史文件: -w
环境变量:
PATH:命令搜索路径
HISTSISZE:默认历史大小1000条
命令历史第n条执行:!n
命令历史的倒数第n条命令执行:!-n
执行上个命令:!!
执行命令历史搜索根据条件执行历史命令:!man该命令执行时候会以最近距离匹配的命令进行执行。
ESC,.
Alt+.
以上是三个命令都可以
补全命令:
tab键第一次可以补全根据输入内容匹配,如果补不全敲击两次
规则:Path路径补全命令
命令别名:
定义的别名只在当前进程的生命周期中有效,关闭后下次需要重新输入
alias
例如dos命令cls清屏
那么我们linux命令也想要用cls那么我们可以给clear起别名
alias cls=clear
假如clear有空格,那么我们需要将其用单引号括起来
bash 也有配置文件,那么我们需要让所有用户都可以实现通过别名进行操作那么我们可以在配置文件修改,具体修改位置在编程里面写。
那么我们不想要别名了该如何撤销,我们可以通过
ualias cls那么我们的命令别名就被取消了
\CMD假如命令别名和命令相同需要加上反斜线
命令替换$(command),反引号ESC下面的那个·command·:
把命令中某个子命令替换为其执行结果的过程
我们得到的结果变了我们将其结果改变了
如何获取时间,date +%F-%H-%M-%S
那么我们得到结果如同
2016-09-24-17-54-35
那么我们要在当前目录将其创建为file-2016-09-24-17-54-35.txt文件呢
touch ./file-$(date +%F-%H-%M-%S).txt
那么这里说明下引号的使用:··:命令替换
“”弱引用,可以实现变量替换
‘’:强引用,不完成变量替换
弱引用和强引用放在变量的时候说明.
文件名通配(globbing):
通过某个符号替换某些文件名
*:匹配任意长度的任意字符
?:匹配一个任意字符
【】:匹配指定范围内的任意单个字符
【^】:匹配范围内的任意单个字符
【:punct:】所有的标点符号
【:space:】所有的空白字符
【:lower:】小写字母
【:upper:】大写字母
【:alpha:】大小写字母
【:digit:】数字
【:alnum:】数字和大小写字母
我们可以根据man 7 glob查看所有的上述命令
文件名如何通配:
创建多个文件touch abc wer 123 ad34 a123
以一个字母开头,中间有空格后面结尾是跟着数字的文件
以一个字母开头,
以a开头后面跟任意字符的文件 ls a*—-查看所有
GUI:Gnome,RDE,Xfce
GLI:sh,,csh(接近c语言),ksh(商业化)—->bash最强大功能遵循开源,zsh也比较强大但没有流行
当前所有系统默认都是bash可以支持:
程序:唯一
进程:程序的副本,程序的实例(带有内核管理的生命周期)
进程:每个进程不知道,当前主机上只存在内核和当前进程,不知道其他进程的存在。
用户工作环境:
bash:#管理员
$普通用户
shell存在子shell,shell,子shell存在包含关系
我们可以连续bash三次通过pstree查看下bash命令最后通过exit退出
为什么要说这个包含关系:
那么刚才说的shell是个进程,每个进程不知道,当前主机上只存在内核和当前进程,不知道其他进程的存在。
所以如果存在包含关系情况我们需要做的是处理权限的话,那么不同父子的进程权限是互不影响的。
那么还有个注意点sh特性的话,父类和子类可能不一样那么bash下面子类可以是csh也可以是ksh
bash特性:
1、命令历史,命令补全
2、管道,重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名通配
7、变量
8、编程—-以后就是所谓的脚本
命令行编辑:
命令光标跳转:ctrl+a:跳到命令行首
ctrl+e:跳到命令行尾
ctrl+d删除内容光标位置
ctrl+u删除光标至行首内容
ctrl+k删除光标至行尾的内容
ctrl+l清屏====clear
命令历史:
bash自动记录过去执行的内容,会将其保存到内核的内存区域
history查看我使用过得所有命令历史
不想让别人看见某些记录
可以通过history删除
清空整个命令历史:history -c
删除指定行内的数据;history -d 200(指行数)
删除从offset开始删除多少个:history -d offset
用户正常退出的话即使删除了那么我们可以通过.bash_history
在家目录下面存储
将内核缓存区内容保存到历史文件: -w
环境变量:
PATH:命令搜索路径
HISTSISZE:默认历史大小1000条
命令历史第n条执行:!n
命令历史的倒数第n条命令执行:!-n
执行上个命令:!!
执行命令历史搜索根据条件执行历史命令:!man该命令执行时候会以最近距离匹配的命令进行执行。
!$:引用前一个命令的最后一个参数。nano !$打开上次文件,因为最后的一个参数是文件
ESC,.
Alt+.
以上是三个命令都可以
补全命令:
tab键第一次可以补全根据输入内容匹配,如果补不全敲击两次
规则:Path路径补全命令
命令别名:
定义的别名只在当前进程的生命周期中有效,关闭后下次需要重新输入
alias
例如dos命令cls清屏
那么我们linux命令也想要用cls那么我们可以给clear起别名
alias cls=clear
假如clear有空格,那么我们需要将其用单引号括起来
bash 也有配置文件,那么我们需要让所有用户都可以实现通过别名进行操作那么我们可以在配置文件修改,具体修改位置在编程里面写。
那么我们不想要别名了该如何撤销,我们可以通过
ualias cls那么我们的命令别名就被取消了
\CMD假如命令别名和命令相同需要加上反斜线
命令替换$(command),反引号ESC下面的那个·command·:
把命令中某个子命令替换为其执行结果的过程
echo ”The current directory /root“ echo ”The current directory is $(pwd)“可替换为 echo ”The current directory is · pwd ·“
我们得到的结果变了我们将其结果改变了
如何获取时间,date +%F-%H-%M-%S
那么我们得到结果如同
2016-09-24-17-54-35
那么我们要在当前目录将其创建为file-2016-09-24-17-54-35.txt文件呢
touch ./file-$(date +%F-%H-%M-%S).txt
那么这里说明下引号的使用:··:命令替换
“”弱引用,可以实现变量替换
‘’:强引用,不完成变量替换
弱引用和强引用放在变量的时候说明.
文件名通配(globbing):
通过某个符号替换某些文件名
*:匹配任意长度的任意字符
?:匹配一个任意字符
【】:匹配指定范围内的任意单个字符
【^】:匹配范围内的任意单个字符
【:punct:】所有的标点符号
【:space:】所有的空白字符
【:lower:】小写字母
【:upper:】大写字母
【:alpha:】大小写字母
【:digit:】数字
【:alnum:】数字和大小写字母
我们可以根据man 7 glob查看所有的上述命令
文件名如何通配:
创建多个文件touch abc wer 123 ad34 a123
以一个字母开头,中间有空格后面结尾是跟着数字的文件
ls 【a-zA-Z】*【【:space:】】*【0-9】 或者写成:【【:alpha:】】*【【:space:】】*【【:digit:】】
以一个字母开头,
以a开头后面跟任意字符的文件 ls a*—-查看所有
相关文章推荐
- Linux运维+系统服务搭建(四)shell编程--bash基础
- Linux运维+系统服务搭建(五)bash条件判断和流编辑器sed基本用法
- Linux运维+系统服务搭建(三)用户管理及权限、IO重定向、grep、正则表达式
- Linux运维+系统服务搭建(六)vim编辑器用法 (二)
- Linux运维+系统服务搭建----Could not retrieve mirrorlist
- Linux系统下PXE装机服务的搭建与部署(附完整命令与截图)
- bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示
- Linux运维+系统服务搭建(六)vim编辑器用法
- Linux运维+系统服务搭建(七)文件查找
- bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
- bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例
- Windows 系统服务命令(快捷命令)
- 利用kiwi_syslog_软件为vigor_防火墙路由器搭建日志服务系统100
- 查看系统服务命令
- 邮件服务系统专题1:如何简易的搭建邮件系统
- 【读书摘记】读“面向服务及其在互联系统策略中的角色”
- 系统常用服务和命令
- sc 创建系统服务命令
- Linux邮件服务系统的搭建(二)
- Linux 的系统服务及其配置