linux vim 环境变量,vim、find 的使用bash环境变量

今天我给大家带来的是VIM,find,命令的使用和bash环境变量的一些内容。vim命令

vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版,与vi编辑器完全兼容,而且实现了很多增强功能。

vi编辑器有三种模式:输入模式,命令模式(编辑模式)和末行模式,(默认打开命令模式)

ec73fbc54baff1f7adc8c23317be7011.png

语法:   vi(选项)(参数)

参数解释:Ctrl+u:向文件首翻半屏;

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

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

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

Esc:从编辑模式切换到命令模式;

ZZ:命令模式下保存当前文件所做的修改后退出vi;

:行号:光标跳转到指定行的行首;

:$:光标跳转到最后一行的行首;

x或X:删除一个字符,x删除光标后的,而X删除光标前的;

D:删除从当前光标到光标所在行尾的全部字符;

dd:删除光标行正行内容;

ndd:删除当前行及其后n-1行;

nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;

p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;

P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;

/字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;

?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;

a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;

a:在当前字符后添加文本;

A:在行末添加文本;

i:在当前字符前插入文本;

I:在行首插入文本;

o:在当前行后面插入一空行;

O:在当前行前面插入一空行;

:wq:在命令模式下,执行存盘退出操作;

:w:在命令模式下,执行存盘操作;

:w!:在命令模式下,执行强制存盘操作;

:q:在命令模式下,执行退出vi操作;

:q!:在命令模式下,执行强制退出vi操作;

:e文件名:在命令模式下,打开并编辑指定名称的文件;

:n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;

:f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;

:set number:在命令模式下,用于在最左端显示行号;

:set nonumber:在命令模式下,用于在最左端不显示行号;find命令

find和localte都查找工具他们的区别:

locate: 非实时查找工具;依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新此数据库(updatedb);查找速度快;模糊查找;

locate -i 忽略大小写

find:实时查找;查找速度略慢;精确查找;用来在指定目录下查找文件

find 语法

find [OPTION]... [查找路径] [查找条件] [处理动作]

查找路径:默认为当前路径;

查找条件:指定的查找标准,可以根据文件名、大小、属主属组、类型等进行;默认为找出指定路径下的所有文件;

处理动作:对符合条件的文件做什么操作;默认为输出至屏幕;

查找条件介绍:根据文件名进行查找:

-name "文件名称": 支持使用glob;

-iname "文件名称":不区分字符大小写,支持使用glob;

-regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称;根据属主、属组查找:

-user USERNAME: 查找属主为指定用户的文件;

-group GROUPNAME:   根据组查找

-uid UserID: 查找文件的属主指定uid的文件;

-gid GroupID:  查找文件属组GID的文件

-nouser: 查找没有属主的文件;

-nogroup:查找没有属组的文件;根据文件类型进行查找:

命令参数:-type TYPE

f: 普通文件

d: 目录

l: 符号链接

b: 块设备

c: 字符设备

p: 命名管道

s: 套接字根据组合查找条件:

与条件:-a

或条件:-o

非条件:-not, !根据文件大小来查找:

-size [+|-]#UNIT

单位:k, M, G

下面是5大小的文件的各种解释:

acf46fe46c21b173b6b8c5e6f60733d5.png根据时间戳:

以“天”为单位

-atime 用、户最近一次访问时间。

-mtime  文件最后一次修改时间。

-ctime   文件属性(例如权限等)最后一次修改时间。

以“分钟”为单位

-amin

-mmin

-cmin

下面是时间的表示方法:

34cd21b66c2c9154f891c46241e2afd2.png

根据文件的权限:

-perm [/|-]MODE

MODE: 精确权限匹配

/MODE:任何一类对象(u,g,o)的任何一位权限符合条件即可;隐含或条件;

-MODE:为每一类对象指定的每一位权限都必须同时存在方为符合条件;隐含与条件;

处理动作:

-print: 默认处理动作打印到屏幕

-ls:类似于对查找到的每个文件做"ls -l"的操作;

-delete: 删除查找到的文件;

-fls /path/to/somefile:查找到的文件的详细路径信息保存至指定文件中;

-ok COMMAND {} \;

对每个文件执行指定的命令之前需要用户事先确认;

-exec COMMAND {} \;

无需用户确认;bash环境变量的简单介绍:

配置文件,生效范围划分,存在两类:

全局配置:/etc/profile, /etc/profile.d/*.sh/etc/bashrc

个人配置:~/.bash_profile ,~/.bashrc

按功能划分,存在两类:

profile类:为交互式登录的shell提供配置

/etc/profile, /etc/profile.d/*.sh

~/.bash_profile

功用和作用:

(1) 定义环境变量,例如PATH、PS1

(2) 运行命令或脚本

bashrc类:为非交互式登录shell提供配置

/etc/bashrc

~/.bashrc

功用和作用:

(1) 定义命令别名;alias

(2) 定义本地变量;

环境变量:作用范围当前shell进程及其子进程

本地变量:作用范围当前shell进程

定义本地变量:

name=value

查看:set

定义环境变量:

export name=value

declare -x name=value  x  指定的变量会成为环境变量

查看:env, printenv, export

撤消变量:unset name

引用变量:${name}, $name

bash中的引用符号:

'': 强引用,变量替换不会发生

"":弱引用

``: 命令引用

shell登录类型:

交互式登录:

直接通过终端进行的登录;

通过su -l Username命令实现的用户切换;

非交互式登录:

图形界面下打开的命令行窗口;

执行脚本;

su Username;

最重要的是配置文件作用次序:

交互式登录:

su -l username/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非交互式登录:

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

编辑配置文件定义的新配置如何生效?

(1) 重新登录;

(2) 让当前shell进程去重新读取指定的配置文件;

source   /PATH/TO/SOMEFILE

. /PATH/TO/SOMEFILE

下面是一些练习试题:复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;

%s/^[[:blank:]]/#/g

25f81480cde704a4e09321478ef36f39.png复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留;

%s/^[[:blank:]]/#&/g

8c688027240126805cc0db3eebe66a26.png替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;%s#/etc/sysconfig/init#/var/log#g

bfbab76aaaf9dfcbb92a52158652dabb.png删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#;

%s/^#\([[:space:]]\+\)/\1/g

4fb7bf613c556908b480825441335216.png查找/var目录属主为root,且属组为mail的所有文件;

find /var -user root -a -group mail -ls查找/usr目录下不属于root、bin或hadoop的所有文件;find /usr ! \( -user root -o -user bin -o -user hadoop \) -ls查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件;find /etc/ -atime -7  -a ! \( -user root -o -user hadoop \) -ls查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;find /etc/ -atime -7  -a -nouser -a  -nogroup  -ls查找/etc目录下大于20k且类型为普通文件的所有文件;find /etc/ -size +20k -a -type f -ls查找/etc目录下所有用户都没有写权限的文件;find /etc  -! -perm /222  -ls查找/etc目录下至少有一类用户没有执行权限的文件;find /etc -perm /111  -type f -ls查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件;find /etc/init.d  -perm  -111 -a -perm -002 -ls让普通用户能使用/tmp/cat去查看/etc/shadow文件;chmod u+s /tmp/cat创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;# chmod g+s /test/data

# chmod g+w /test/data

# chmod o+t /test/data

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值