bash环境配置及脚本(02)_recv

bash环境配置及脚本(02)_recv

bash环境配置文件:

按生效范围划分,存在两类:

全局配置:

/etc/profile

/etc/bashrc

个人配置:

~/.bash_profile

~/.bashrc

按照功能划分:存在两类

Profile类:为交互式登陆的shell提供配置

全局:/etc/profile或/etc/profile.d/*.sh

案列:vim /ect/profile

Echo “Welcome , your home is $HOME, note:..”

个人:~/.bash_profile

功用:

1:定义环境变量

2:运行命令或脚本

Bashrc类:为非交互式登陆的shell提供配置

全局:/etc/bashrc

个人:~/.bashrc

功用:

1:定义别名;

2:定义本地变量;

Shell登录的类别:

交互式登录:

直接通过终端输入账号密码登录称为交互式登录

使用su – Username 切换的也称为交互式登录

/etc/profile–>/etc/profile.d/*.sh-->~/.bash_profile à~/.bashrc --> /etc/bashrc

非交互式登录:

Su Username

图形界面下打开的终端,

执行脚本也称为非交互式登录;

~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh

问题:

1:定义对所有用户都生效的别名?

Vim /etc/bashrc

2:让用户的PATH环境变量的值多出一个路径,例如/usr/local/apache2/bin

Export PATH=/usr/local/apache2/bin

vim编辑器(03)_recv

vim:模式化的编辑

基本模式:

编辑模式,命令模式

输入模式

末行模式

打开文件:

Vim [OPTION]…FILE…

+#:打开文件后,直接让光标处于跳转最后一行的行首

Vim + /etc/passwd

+/pattern:打开文件后,直接让光标处于第一个被pattern匹配到的行首;

模式转换:

编辑模式-->输入模式

i:insert,光标所在处输入;

a:append,在光标处的后边输入;

o:在当前光标所在行的下方打开一个新行;

I:在当前光标所在行的行首

A: 在当前光标所在行的行尾

O:在当前光标所在行的上方打开一个新行;

c:

C:

关闭文件:

:q 退出

:q! 强制退出,丢弃做出的修改

:wq 保存退出

:x      保存退出

:w /path/to/somewhere

ZZ:在命令模式下保存退出

光标跳转:

字符间跳转:

h,j,k,l

h:左

l:右

k:上

j:下

#COMMAND:10l 跳转由#指定个数的字符;

单词之间跳转:

w:下一个单词的词首

e:跳转至下一个单词的词尾

b:当前或前一个单词的词首

行首行尾跳转:

^:跳转至行首的第一个非空白字符

0:跳转至行首

$:跳转至行尾

行间移动:

#G:跳转至有#指定行;#代表数字

G:最后一行

gg或者1g:跳转行首

句间移动;

段落间移动:

}

{

Vim的编辑命令:

字符编辑:

x:删除光标处的字符

#x:删除光标处起始的#个字符;

xp:交换光标所在处的字符及其后面字符的位置

删除命令:

d:删除命令,可结合光标跳转字符,实现范围删除;

d$:删除光标当后的所有字符;

d^:删除光标当前的所有字符;

dd:删除所在行的整行;

粘贴命令:(p)

P:大写P:缓冲区存在的如果为整行,则粘贴当前光标所在行的上方,否则,则粘贴至当前光标所在处的前面;

p:小写p:缓冲区存在的如果为整行,则粘贴当前光标所在行的下方,否则,则粘贴至当前光标所在处的后面;

DD删除之后p;相当于粘贴

复制命令(y)

y:复制

其他编辑操作:

可视化模式:

V:按行选定;选择整行复制或者删除

v:按字符选定;自定义复制或者删除行

撤销此前的编辑:默认50次

u:撤销此前的操作:

#u:撤销指定次数的操作;

撤销此前的撤销:

Ctrl+r

翻屏操作:

Ctrl+f:向文件尾部翻一屏;

Ctrl+b:向文件首部翻一屏;

Ctrl+d:向文件尾部翻半屏;

Ctrl+u:向文件首部翻半屏;

Vim中的末行模式:

内建的命令行接口:

1:地址定界

:start_pos,end_pos

#:具体第#行,例如2表示第二行

#,#:从左侧#表示起始,到右侧#表示行结尾;

#,+#:从左侧#表示行的起始,加上右侧#表示的行;

.:当前行

$:最后一行

.,$-1

%:表示全文,相当于1,$;

:1,20w /tmp/vim.txt        将范围内的行另存至指定文件中;

:r /etc/fstab                        在指定位置插入指定文件中的所有内容

2:查找

/PATTERN :从当前光标所在处向文件尾部查找。

?PATTERN :从当前光标所在处向文件首部查找;

N:与命令反方向

n:与命令同方向

3:查找并替换

s:在末行模式下完成查找替换操作

s#要查找的内容/替换为的内容/修饰符

%s/UUID/uuid

要查找的内容:可以使用模式

替换为的内容:不能使用模式

练习:

1:复制/etc/grub2.cfg至/tmp/目录,用查找替换命令删除/tmp/grub2.cfg文件中的空白字符;

:%s/^[[:space:]]\+//

2:复制/etc/rc.d/init.d/functions文件至目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行首添加一个#号

:%s/^[[:space:]]/#&/

多文件模式:

Vim file1 file2 file3 …

Vim /mnt/{ file1 file2 file3}

:next 下一个

:Prev 前一个

:first 第一个

:last 最后一个

:wall 保存所有

:qall 退出所有

:wqall

窗口分割模式:

Vim –o file1 file2 ….

-o:水平分割

-O:垂直分割

在窗口间切换:crtl+w,

单文件窗口分割:

Vim /mnt/fstab

Ctri+w,s:split,水平分割

Ctrl+w,v:vertical,垂直分割

定制vim的工作特性;

配置文件:永久有效

全局:/etc/vimrc

个人:~/.vimrc        /不存在的需要自己创建

如:显示行号 set number

末行:当前vim进程有效

1:行号

显示:set number ,简写set nu

取消显示:set nonumber,简写:set nonu

2:括号匹配

匹配:set showmatch,简写:set set sm

取消:set nosm

3:自动缩进

开启:Set ai

禁用:set noai

4:高亮搜索

启用:set hisearch

禁用:set nohisearch

5:忽略字符大小写

启动:set ic

禁用:set noic

vim编辑器和bash条件测试(04)_recv

使用centos 7测试;

bash条件测试:

文件测试:

存在性测试:

-e FILE :文件存在性测试,存在为真,否则为假

测试:[ -e /etc/grub.conf ]

存在性及类别测试:

-b FILE:是否存在且为快设备文件

测试:[-b /etc/grun2.cfg]       echo $?

测试:[ -b  /dec/sda ] echo $?

-c FILE:是否存在且为字符设备文件

-d FILE:是否存在且为目录文件;

-f FILE:是否存在且为普通文件;

-h FILE:存在且为符号链接文件;

-p FILE:是否存在且为命名管道文件;

-S FILE:是否存在且为套接字文件;

文件权限测试:

-r FILE:是否存在且可读;

-w FILE:是否存在且可写;

-x FILE:是否存在且可执行;

文件特殊权限测试:

-g FILE:是否存在且为拥有SGID权限;

-u FILE:是否存在且为拥有SUID权限

-k FILE:是否存在且拥有sticky权限;

文件大小测试:

-s FILE:是否存且非空;

组合测试条件:

逻辑运算:

两种方式:

第一种方式:

COMMAND1 && COMMAND2 并且

COMMAND1 || COMMAND2 或者

! COMMAND 非

第6天【egrep、bash环境配置及脚本、vim编辑器】的更多相关文章

  1. bash 环境配置及脚本

    bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来 查看当前shellecho $SHELL查看系统支持的shellcat /etc/shells cd /binls ...

  2. PHP_环境配置_python脚本_2017

    Apache配置 需要安装:VC2015 httpd-2.4.16-win32-VC14.zip VC14就是2015的环境. 又比如:php-5.6.12-Win32-VC11-x86 VC11就是 ...

  3. 学习bash——环境配置

    一.环境配置文件的重要性 Bash在启动时直接读取这些配置文件,以规划好bash的操作环境. 即使注销bash,我们的设置仍然保存. 二.login shell 通过完整的登录流程取得的bash,称为 ...

  4. source 命令的用法,是在当前bash环境下执行脚本文件

    原文: http://www.cnblogs.com/softwaretesting/archive/2012/02/13/2349550.html source命令用法: source FileNa ...

  5. 新环境配置与使用Vim指南

    1.下载源码 git clone git@github.com:vim/vim.git 2.编译 1.安装依赖软件 sudo apt-get install libncurses5-dev libgn ...

  6. go语言的安装及环境配置

    Go语言开发环境搭建(ubuntu) 1.清理.卸载之前的 go 语言环境: 删除go目录:sudo rm -rf /usr/local/go 删除软链接(如果建立了软链接):sudo rm -rf ...

  7. [PY3]——环境配置(1)——pyenv | pip | ipython | jupyter(含安装pyenv环境shell脚本)

    1.关于pyenv (1)pyenv是一个开源的.shell脚本编写的工具:Simple Python version management (2)为什么使用pyenv:当多个项目同时在开发与维护时, ...

  8. Mac下golang开发环境配置

    go语言在开发效率和运行效率中的优势让很多人青睐,所以有倾向打算转向go语言的开发. 下面介绍在Mac OS X中golang的开发环境配置. 1.安装brew brew是一个mac下的由ruby开发 ...

  9. 转[开发环境配置]在Ubuntu下配置舒服的Python开发环境

    在Ubuntu下配置舒服的Python开发环境 Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的 ...

随机推荐

  1. python框架之Flask(2)-路由和视图&Session

    路由和视图 这一波主要是通过看源码加深对 Flask 中路由和视图的了解,可以先回顾一下装饰器的知识:[装饰器函数与进阶] 路由设置的两种方式 # 示例代码 from flask import Fla ...

  2. CentOS 7静默安装Oracle 11g R2数据库软件

    之前安装Oracle 11g R2数据库软件都是建立在图形界面上的,不过现在大部分服务器上都没有安装图形界面.图形界面安装较为方便,安装选项清晰,步骤明确,但Oracle还支持另一种安装方式,就是通过 ...

  3. C# Tuple<T1,T2....T>元组的使用

    1) 先说组元:一个数据结构,由通过逗号分割的,用于传递给一个程序或者操作系统的一系列值的组合. NET Framework 直接支持一至七元素的元组 Tuple<T1> Tuple< ...

  4. SQL Server通过BCP进行大批量数据导入导出

    预置条件: 使用sa帐号登录SQL Server Management Studio,右键点击安全性-登录名-数据库用户名属性,设置服务器角色为sysadmin. 删除已存在的存储过程 String ...

  5. python hello 的三种方法

    1)直接 print("hello") 2)使用main函数: def main(): print("Helloa你好") if __name__ == &qu ...

  6. solr简单搜索案例

    solr简单搜索案例 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字搜索商品信息,根据商品分类.价格过滤搜索结果,也可以根据价格进行排序,实现分页. 架构分为: 1. solr服务器 2. ...

  7. apache+jk+tomcat+ssl的https改造

    项目背景 公司项目要进行https的改造,目前在测试环境搭建了一下,参考了网上的例子(http://blog.csdn.net/whumr1/article/details/7804992) 这里把主 ...

  8. "远程服务器返回错误: (500) 内部服务器错误"错误处理

    公司购买的百傲瑞达一卡通软件,提供Restful API调用,使用SoapUI能够调用成功,但在C#里用代码调用时一直报错:"远程服务器返回错误: (500) 内部服务器错误" 找 ...

  9. 一些sql优化原则

    1.我们在设计表的时候,尽量让字段拥有默认值,尽量不要让字段的值为null. 因为,在 where 子句中对字段进行 null 值判断(is null或is not null)将导致引擎放弃使用索引而 ...

  10. PXC添加新节点

    先拉数据,再启用节点,可以避免SST 拉数据 [root@pxc_node1_172.16.11.132 ~]# /usr/bin/innobackupex --defaults-file=/etc/ ...