这部分将涉及常用的各类linux命令和一些系统高级管理特性,尤其是shell script的创建,这部分在系统自动化运维时会很有作用。
在进入bash介绍之前,首先需要介绍vim编辑器,虽然现在的编辑器已经非常强大, 比如sublime等,但有些场合还是需要简单的使用vim来进行文件的编辑,由于现在这部分内容已经不是重点,因此通过一个简单的表格介绍其最基本的几个命令。
| 命令 | 示例 |
| 编辑w文本 | vi test.txt,默认进入命令模式 |
| 编辑模式 | 通过i字符进入 |
| 命令模式 | 通过[Esc]进入,通过:wq完成编辑并保存,其中w表示保存,q表示退出,:q!表示强制退出不保存 |
| 常见快捷键 | dd删除所在行,yy复制所在行,[ctrl]+r重做上一个操作 u复原前一个操,p粘贴 |
接下来开始bash常用命令介绍,内容比较多,需要有点耐心。这部分内容推荐把bash脚本当做一个全新的语言进行学习,这个力度将会使你很好的掌握bash。
|
命令 |
示例 |
|
type name |
查看命令信息 |
|
变量的显示、设置和取消 |
echo $PATH, name=xionger, unset name |
|
环境变量 |
HOME:用户主文件,SHELL:默认为/bin/bash HISTSIZE:临时命令条数,PATH:执行文件查找路径,用:分隔 |
|
locale |
查看系统语言环境信息,可以通过/etc/sysconfig/i18n |
|
从键盘读取用户输入 |
read [-pt] variable read -p 'please keyin your name: ' -t 30 named |
|
声明变量declare |
默认定义为字符串 declare –a,定义变量为数组 declare –i,定义变量为整数 declare –x,用法与export一样,将之后变量设置为环境变量 declare –r,设置为readonly |
|
alias,unalias |
给长命令设置/取消别名 |
|
history |
查看已使用命令,history | grep named |
|
相关配置文件 |
~/.bash_profile, /.bash_login, /.profile 可以通过source 配置文件,读入环境配置 |
|
数据流重定向 |
ll / > ~/temp/llShow.txt,一个>表示方式,2个表示append方式 |
|
命令执行的判断依据 |
; && || |
|
Pipe管道命令 |
后续命令依赖于前一个命令的结果,ls –al /etc | less |
|
常用字符串命令 |
cut –c 分割字符; grep 字符串,查找包含此字符串的行 sort排序命令; uniq去重命令;wc获取行数 其他命令:tr,col,join,paste,expand,split |
Tip:如果命令太长,可以使用\[Enter]方式换行。
管道命令:more, less可用于查看大量信息
正则表达式在Linux的应用:正则的概念和使用大家已经非常熟悉,这儿就不做介绍了,可参考博文--正则表达式。这儿主要介绍其在系统中的使用,目的只有一个,为之后的运维脚本提供基础。通常正则会用在grep命令中,比如 grep –n 'the' demo.txt,这儿的the可以用任意正则pattern替换。此外,可以通过sed、awk工具帮助查询脚本,需要时查询相关文档即可。
1 #!/bin/bash 2 # program:用户输入一个文件名,系统检查其目录和权限 3 # History:2016 4 PATH=/bin:/sbin:/user/bin:/user/sbin:~/bin 5 export PATH 6 7 #1.输入文件名 8 echo -e "please input a filename, it will check the filename's type and \ 9 permission \n\n" 10 read -p "input filename : " filename 11 test -z $filename && echo "you must input a filename" && exit 0 12 #2.判断文件是否存在 13 test ! -e $filename && echo "the filename '$filename' is not existed " &&exit 0 14 #3.判断文件类型 15 test -f $filename && filetype='regular file' 16 test -d $filename && filetype='directory' 17 test -r $filename && perm='readable' 18 test -w $filename && perm='$perm writable' 19 test -x $filename && perm='$perm executable' 20 #4.输出信息 21 echo "The filename: $filename is a $filetype" 22 echo "And the permissions are : $perm"