4.1.1、chmod 修改所有者权限(-u(属主)、-g(属组)、-o(其他)、-a(所有)),--reference参考指定文件权限赋值给需要修改文件,举例:chmod --reference=/etc/inittab /tmp/123.txt ,-R(递归修改目录下所有文件权限)。chown user:group可以同时修改属主和属组、umask用户创建默认权限值(目录为777-umask、文件666-umask(文件权限减去umask若有执行权限将会在对应的权限上加1))
4.1.2、Ctrl+a:跳转至命令行首、Ctrl+e:跳转至命令行尾、Crtl+u:删除光标处至行首内容、Crtl+k:删除光标处至行尾内容、Crtl+l:清屏、Crtl+c:终止、Crtl+z:把命令送至后台运行。
4.2.1、过程式编程语言控制语句(顺序执行、选择执行、循环执行),脚本:人机交互接口提供的控制机制,将希望执行的命令罗列在文件中一起执行。bash没有库,整个程序都依赖于命令完成。编译型(源程序->预处理->编译->汇编->链接)也称为静态语言,解释型(源程序->解释器去读取执行)也称为动态语言。编译型程序生成为二进制程序后无需依靠编译器可单独运行,解释型无法脱离解释器独立运行。
4.2.2、bash变量:本地变量(只对当前shell进程有效,其他shell和子shell进程无效)、环境变量(当前shell和子shell进程有效,其他 shell进程无效,export name)、局部变量(对某shell脚本代码片段有效)、位置变量、特殊变量:有特殊意义的变量($?)。
4.2.3、变量赋值:向变量空间保存数据name=value。变量引用:读取变量空间数据echo ${name}。撤销变量:unset name。只读变量:readonly name(当设置为只读变量后变量值将不能修改和撤销)。查看当前shell进程中所有变量:set,查看当前shell中环境变量:export、printenv、env
4.2.4、变量类型:整数、浮点数(单精度和双精度)、字符型(char、string)。定义不同变量类型所保存机制不同:例如(18保存整数为00010010,保存为字符是分别把1和8转换成ASCII进行保存)。bash是弱类型:保存变量方式一切皆字符
4.2.5、bash配置文件:profile类:为交互式登录用户提供配置(全局:/etc/profile和/etc/profile.d/*.sh、个人:~/.bash_profile、),bashrc类:为非交互式用户提供配置(全局:/etc/bashrc、个人:~/.bashrc)
4.2.6、登录类型:交互式(1.通过终端使用账号密码进行登录的,2.通过su - username登录的),非交互式(1.通过su userename登录,2.图形下打开的终端,3.自动执行脚本时)。修改配置文件生效方式:退出重新登录或用source重读配置文件。交互式读取配置文件的顺序(/etc/profile、/etc/profile/*.sh、~/.bash_profile、~/.bashrc、/etc/bashrc),非交互式(~/bashrc、/etc/bashrc、/etc/profile/*.sh)
4.3.1、grep(Global search REgular expression and Print out the line),根据用户指定模式逐行搜索:grep --color=auto ‘root‘ /etc/passwd、-v反向显示、-o不显示匹配行只显示匹配到的内容、-i忽略大小写、-E支持扩展正则表达式、-An、-Bn、-Cn显示前后n行
4.3.2、正则表达式元字符:(.任意单个字符、[]指定范围内的任意单个字符、[^]取反范围外的任意单个字符、*前一字符出现的任意长度,\?前一字符出现的0次或1次、\{m\}前一字符出现指定次数)、\{m,n\}前一字符出现最少m次,最多n次、.*任意长度任意字符、^行首锚定、$行尾锚定、^$表示空白行、不包含特殊字符的单词锚定(\<词首锚定、\>词尾锚定、)、分组符号\(\)。\n引用第n个匹配的内容。
4.4.1、egrep无需写转译符如:?{}()词首和词尾锚定还是需要转译符(\<、\>),多了+:表示前一字符至少出现一次,| 或