玩Linux的操作:五分钟获得Bash功能和提示

发布者:上海IT外包来源:http://www.lanmon.net点击数:1017

完整计算机的体系结构包括:硬件和软件,软件分为系统软件和应用软件。负责硬件管理和操作的系统软件内核的唯一部分是用户无法处理硬件或内核。命令通过应用程序或部分系统软件发送(可能通过浏览器发送电子邮件),这些指令被翻译并传递给内核,内核调度硬件资源以在了解用户需求后完成操作(例如,使用网卡)发送数据包)。
在Linux环境中,我们一般通过Shell与内核通信,最终达到使用计算机资源的目的。由于Linux的开放性,Linux下有许多Shell选项。不同的壳具有不同的特征和操作方法。在这里,我们了解一种Linux技术:Bash功能。
首先,bash介绍
1shell
bash—— shell的由来。 Shell通常称为shell,它指的是UNIX系统下的命令解析器;它主要用于用户和系统交互。 UNIX系统上有很多种shell。第一个shell,Bourne Shell,于1978年在V7(第7版AT&T)UNIX上推出。后来,不同版本的shell如C shell和bash进化而来。
广义shell包含:
1,GUI:Gnome,KDE,Xfce
2,CLI:sh,csh,ksh,bash
进程:在每个进程的视图中,只有当前主机上存在内核和当前进程,该进程是程序的副本,而进程是程序执行实例。
2bash
Bash,全名是Bourne-Again Shell。它是为GNU项目编写的Unix shell。 Bash脚本非常强大,特别是在处理自动循环或大型任务时。 Bash是许多Linux平台的默认shell,这就是我们引入它的原因。
1,支持命令历史,命令完成
2,支持管道,重定向
3,支持命令别名
4,支持命令行编辑
5,支持命令行扩展
6,支持文件名通配符
7,支持变量
8,支持编程
第二,bash示例和编写过程
1,创建一个新文件test.sh
$ touch test.sh
2,添加可执行权限
$ chmod + x test.sh
3.编辑test.sh和test.sh如下:
#!/斌/庆典
Echo'hello bash'
退出0
描述:
#!/bin/bash:这是一个bash文件声明语句,这意味着该文件由/bin/bash程序执行。它必须写在文件的第一行!Echo'hello bash':意味着在终端输出“hello bash”。
退出0:表示返回0.在bash中,0表示执行成功,其他表示失败。
4,执行bash脚本
$ ./bash
在终端输出“bash hello”
三,bash特征
1.命令历史:
历史:
查看命令历史:历史
-c:清除命令历史记录
-d OFFSET [n]:删除指定位置的命令
示例1:history -d 500#删除第500个历史命令
示例2:history -d 500 3#从3个历史命令中删除第500个命令
-w:将命令历史记录保存到历史文件(主目录中的.bash_history)
2,命令历史使用技巧:
!n:在命令历史记录中执行第N个命令
示例:root @ localhost /]#!44
!-n:执行命令历史记录中的最后一个N命令
示例:[root @ localhost /]#! -  44
!:重新执行最后一个命令
!string:在命令历史记录中的最新指定字符串(字符串)的开头执行命令
!$:指的是上一个命令的最后一个参数
退出,。:是指上一个命令的最后一个参数
Alt +。:是指上一个命令的最后一个参数
3,命令别名:
别名CMDALIAS='COMMAND [options] [arguments]'
示例:[root @ localhost /] #alias cls=clear
shell中定义的别名仅在当前shell生命周期中有效:别名的有效范围是当前shell进程
Unalias:撤销别名
示例:[root @ localhost /] #unalias cls
\ COMMAND:使用命令本身
4,命令更换:
$(COMMAND)
`COMMAND`:(反引号)
使用执行结果替换命令中的子命令的过程
示例1:[root @ localhost~] #echo'当前目录为$(pwd)。
当前目录是/root。
示例2: [root @ localhost~] #touch ./file-$(date +%F-%H-%M-%S).txt
[root @ localhost~] #ls蟒蛇-ks.cfgfile-2017-03-30-15-10-30.txtinstall.logsort.test
Desktophelloinstall.log.syslog
5,bash支持报价:
``:命令替换
'':弱引用,可以实现变量替换
'':强引用,无变量替换
6,文件名wild:globbing
#man 7 glob以下列表可供使用:
*:任何长度的任何字符
?:任何一个角色
[]:匹配指定范围内的任何单个字符
[a-z],[A-Z],[0-9],[a-zA-Z]
[[: space:]]:空白字符
[[: punct:]]:标点符号
[[: lower:]]:小写字母
[[: upper:]]:大写字母
[[: alpha:]]:大写和小写字母
[[: digit:]]:数字
[[: alnum:]]:数字和大写和小写字母
[^]:匹配指定范围之外的任何单个字符
[^ 0-9]:非数字
[^ [: alpha:]]:非字母表
7,环境变量:
PATH:命令搜索路径
HISTSIZE:命令历史缓冲区大小(默认为1000):
示例:[root @ localhost~] #echo $ HISTSIZE
1000
8,命令行编辑:
Bash有很多供用户使用的快捷方式。掌握全部或部分快捷方式将使您受益匪浅。一开始你可能需要花很多时间来记住这些快捷方式,但是一旦你记得和他们在一起,你的工作效率就会提高。下面列出了常用的快捷方式及其功能描述。
光标跳转:
Ctrl + a:跳转到命令行标题
Ctrl + e:跳转到命令行的末尾
Ctrl + f:光标向右移动一个字符
Ctrl + b:将光标向左移动一个字符
Ctrl + u:将光标删除到命令行的开头
Ctrl + k:将光标删除到命令行的末尾
Ctrl + l:清除屏幕,相当于清除命令
Ctrl + c:终止进程
Ctrl + z:挂起进程(可以通过jobs命令查看挂起的进程)
Ctrl + w:删除光标的上一个单词(带空格分隔符)
Alt + d:删除光标后的单词
9,命令行扩展
在Linux bash中,您可以使用命令行扩展功能来完成需要在多个步骤中完成的操作,只需一半的工作量即可实现两倍的结果。使用{}将相应的参数括在Linux命令参数位置。括号中的参数用逗号分隔,然后bash会在执行此命令时自动扩展括号的内容。例如:
/tmp/{x,y} #Generate/tmp/x和/tmp/y
Mkdir {1..10}#生成一个名为1-10的文件夹
Mkdir -p {1..10}/{1..10}#为名为1-10的文件夹中的名称生成1-10的文件夹
总结一下:
Linux的新手往往害怕命令行,部分原因是他们需要记住大量的命令。毕竟,掌握命令是有效使用命令行的先决条件。
不幸的是,没有学习这些命令的快捷方式,但是一些工具可以帮助您开始学习命令。 “学习不时学习,如果你不进步,那就退却”,只要你继续学习和摸索,你迟早会成为Linux公牛队的一天!
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部