vim find bash 文件系统


一 vim
vi visual interface 全屏文本编辑器
行文本编辑器sed
全屏:vi/vim nano
vim= vi improved

模式:
编辑模式,命令模式
输入模式
末行模式
编辑模式–》输入模式
i insert,原地插入
aappend,之后插入
o新起一行插入
I行首插入
A行尾插入
O当前行上方插入新行
输入模式–》编辑模式
按ESC键
编辑模式–》末行模式
按:wq 保存退出
末行模式–》编辑模式
按ESC键,连按两次

vim 打开文件如果存在直接编辑,如果不存在会创建文件,路径必须正常
vim +n file 打开文件并路到第n行
+/PATTERN
:q
:q!
:wq强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
:x写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。编辑模式下按ZZ会保存光标跳转
字符间跳转
h j k l
左 下 上 右每个跳转字符前面可以加数字,表示多个字符跳转
3h 向左跳3个字符

单词间跳转
w跳到后一个单词的词首 符号被当作单独单词,_不当作单独单词
e当前或后一单词的词尾
b当前或前一单词的词首
前面加数字 ,可以多词跳转

行内跳转
^跳转至行首的第一个非空白字符
0跳转到行首
$跳转到行毛

行间移动
#G跳转到第#号
1G gg跳转到第一行
G跳转到最后一行

句间移动
)跳到下一句以各种符号分隔
(跳到上一句

段落间移动
}跳到下一段以整行空白 分隔
{跳到上一段以整行空白 分隔

编辑命令

字符编辑
x删除光标所在处的字符
#x删除光标所在处入之后的#个字符
xp把光标所在外的字符和后面的字符对掉
r替换所在处的字符
#r
删除命令
d删除,可以跟光标跳转一起使用
d$删除光标位置 到行尾的字符
d^删除光标位置 到行首的字符
d0删除光标位置 到行首的字符

dw 删除光标到下一词前的的全部字符(同时删除下一词前的符号)
de 删除光标到词尾的全部字符(不删除下一词前的符号)
db删除光标到词首的全部字符,如果已经在词首,删除光标之前的整个词

dd 删除光标所在一整行
#dd 删除光标所在行及后面的#行
所有删除内容被VIM编辑器保存至缓冲区

粘贴命令
如果此前复制或删除内容不是一个完整行
p粘贴到光标所在位置的后方
P粘贴到光标所在位置的前方
如果此前复制或删除内容是完整行或多行
p粘贴到光标所在行的下方
P 粘贴到光标所在行的上方

复制命令
y复币
y$ 复制光标位置 到行尾的字符
y^ 复制光标位置 到行首的字符
y0复制光标位置 到行首的字符
‘=
yw复制光标到下一词前的全部字符
ye 复制光标到词尾的全部字符
yb复制光标到词首的全部字符,如果已经在词首,复制光标之前的整个词

yy 复制整行
#y复制#行

改变命令
c 删除—>剪切—->进入插入模式
c$ c^ c0
ce cw cb
cc
#c

撤销命令
u
#u

恢复撤消
ctrl+r
. 重复前一个操作命令

翻屏操作
ctrl+f 向后翻一屏
ctrl+b 向前翻一屏
ctrl+d 向后半屏
ctrl+u 向前半屏

vimtutor vim内置教程

末行模式
地址,定界 后面都可以跟编辑命令 d y w r
:start,end
#第#行
:5 光标跳到第5行
:100 光标跳到第100行
:100d 删除第100行

#,# 第#行到第#行
#,+#
:100,+3d 第100行后面的3行内容删除
.当前行
$最后一行
:.,$-1d
% 1,$全文
:/part1/第一次被此模式所匹配的行
:/umask/
:#,/umask/
:/part1/,/part2/

查找功能
/PATTERN从光标向尾部查找
?PATTERN从光标向头部查找
n与命令同方向查找下一个
N与命令反方向查找下一个

查找替换
s在末行模式下 在地址定界范围内完成查找替换操作
s/要查找的内容/替换为的内容/修饰符
查找的内容:可使用模式
替换的肉容:不能使用模式,可以使用后面引用符号
&引用要查找的内容匹配到的整个内容
修饰符
i忽略大小写
g全局替换

/:用于分隔符,要使用对符号进行转义

:3,100s/pid/processid/g
:%s@/etc/fstab@/tmp/fstab@/g
:.,+20s/^# //g

多文件模式
vim file1 file2
:next 切换到下一个文件
:first 切换到第一个文件
:last 切换到最后一个文件
:prev切换到前一个文件
:wqall保存全部文件
:q!all 不保存全部文件 并退出

多文件窗口分割
vim -o file1 file2 水平分割
-O垂直分割
ctrl+w+箭头
单文件窗口分割
ctrl+w+s 水平分割按ctrl+w +方向切换窗口
ctrl+w+v垂直分割按ctrl+w +方向切换窗口

定制 vim
显示行号 :set nu
不显示行号:set nonu
括号匹配set sm
set no sm
自动缩进set ai
set noai
高亮搜索set hlsearch
set nohlserch
语法着色syntax on
syntax off
忽略字符大小写set ic
set noic
:help
vim 中文手册
vim /etc/vimrc vim的全局配置文件
/~/.vimrc vim的个人配置文件二 文件查找locate 文件查找,根据索引查找,新文件可能找不到 ,查找速度快 ,模糊查找
索引的构建是在系统空闲时自动进行(周期性任务) ,手动更新数据库(updatedb)find 文件找查,实时查找,查找速度慢,精确查找
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]
find [OPTION]… [查找路径] [查找条件] [处理动作]
查找路径默认为当前路径
查找条件指定查找标准,可以根据文件名,大小,属主,类型等,默认指出指定路径下的所有文件
处理动作对符合条件的文件做什么操作,默认输出到屏幕查找条件
根据文件名进行查找
-name 文件名支持使用glob
* ? []
-iname 文件名不区分大小写,支持使用glob
-regex “PATTERN” 以PATTERN匹配整个文件路径字符串,不公公是文件名根据属主,属组查找
-userusername
-groupgroupname
-uiduseruid
-gidusergid
-nouser没有属主的文件
-nogroup没有属组的文件

根所文件类型查找
-type TYPE
f普通文件
d目录文件
l符号连接文件
b块设备
c字符设备文件
p命令管道
s套接字文件
find /tmp -type s -ls

组合查找条件
非条件-not,!
与条件-a
或条件-o !A -o !B = !(A -a B)
!A -a !B = !(A -o B)根据文件大小查找
-size [+|-] #UNIT
单位 k M G
#UNIT (+-1,#]
+UNIT (#,+OO)
-UNIT [0,#-1]
find /etc -size -3k

以时间查找
以天为单位
-atime [+|-]n accessed n*24 hours ago-mtime [+|-]nmodified n*24 hours ago-ctime [+|-]n changed n*24 hours ago以分钟为单位
-amin[+|-]naccessed n minutes ago-mmim[+|-]n modified n minutes ago-cmin[+|-]nchanged n minutes ago
根据权限
-perm [/|-] MODE
MODE精确权限匹配
/MODE任何一类对像(u,g,o) 的任何一位权限符合即可,隐含或条件,三类条件中的任一符合都可以
-MODE每一类对像(u,g,o)指定的每一位权限必须同时存大方或符合条件,隐含与条件。 处理动作
-print :默认显示到屏幕
-ls
-delete
-fls /path/to/somefile

-okCOMMAND{} ; 对每个文件执行前要用户确认
-exec COMANND{} ;对文件的执行无须用户确认
三 bash环境配置
man bash
配置文件
全局配置文件/etc/profile /etc/profile.d/*.sh
/etc/bashrc

个人配置文件~/.bash_profile
~/.bashrc
Profile类
功用定义环境变量
运行的命令或者脚本
bashrc类
功用自定义命令别名
定义本地变量
unset 变量名取消变量
$变量名引用变量”强制用,变量替换不会发生
“”弱引用
“命令引用
ls -l `which cat`

shell登录类型
交互式登录
通过终端进行的登录
通过su -l 命令实现的用户切换
交互式登录
图型界面下打开的命令行窗口
执行脚本

配置文件的作用次序 后面的优先级高于前面的优先级
交互式登录 :
/etc/profile–>/etc/profile.d/*.sh–>~/.bash_profile –> ~/.bashrc –> /etc/bashrc

非交互式登录
~/.bashrc–> /etc/bashrc –> /etc/profile.d/*.sh

编辑的配置文件定义生效方法
重新登录
让当前shell进程去重新读到指定的配置文件
source /path/to/somefile
./path/to/som 香港云主机efile
注意:副作用,每读取一次会把配置的内容附加到环境中,造成配置重复
四 Linux文件系统上的特殊权限

进程的安全上下文
进程有属组(进程以哪个用户的身份运行)
(1) 用户是否把某个可执行文件起动为进程,取决于用户对程序文件是否拥有执行权限
(2) 程序起动为进程后,此进程的属主为当前用户, 进程所属的组,为发起者的基本组
(3) 进程拥有的访问权限,取决其属主的访问权限
进程的属主同文件属主,应用文件属主权限
进程的属主属于文件的属组,应用文件属组权限
其它情况,应用其它权限

SUID用户是否把某个可执行文件起动为进程,取决于用户对程序文件是否拥有执行权限
任何用户来执行该程序为进程时,该程序是程序的属主发起程序
chmod u+s /tmp/cat
注意
S 属主原来无x权限
s 属主原来有x权限

SGID默认情况下,用户创建文件其属组为此用户所属的基本组
一旦某目录设置了SGID权限,则些目录拥有写权限的用户在此目录中创建的文件的组为目录的属组,不是创建用户的基本组。注意
S 属组原来无x权限
s 属组原来有x权限

Sticky 对一个多个可写的目录,此权限用于限制每个用户仅能删除属主为自已的权限SUID SGID STICKY
0 0 0五 Linux磁盘管理 和文件系统识别硬盘 /dev/sd#
标记不同的硬盘设备 /dev/sd[a-]
标记同一设备上的不同分区 /dev/sd[a-z][1-]1-4: 主或扩展分区标识
5+:逻辑分区标识

设备文件特殊文件
设备号
major,minor
major 设备类型
minor 同一类型下的不同设备

块设备 标识为b随机访问设备
字符设备 标记为c线性设备

GPT

分区,分隔存储空间为多个小的空间,每个空间可独立使用文件系统

分区工具
fdiskpartedsfdisk

fdisk最多支持在一块硬盘上的15个分区分区管理子命令 p: 显示
n: 创建
d: 删除
t: 修改分区ID
l: 列出所有支持ID类型
w: 保存退出
q: 放弃修改并退出
m: 获取帮助创建完成之后,查看内核是否已经识别新的分区:有三个命令可以让内核重读磁盘分区表:
CentOS 5: partprobe [DEVICE]
CentOS 6,7:partxkpartxpartx命令:
partx DEVICE
partx -a DEVICE
partx -a -n M:N DEVICE
M
M:
:Nkpartx命令:
kpartx -af DEVICE文件系统管理
文件系统 VFS Virtual File SystemLinux: ext2 ext3 ext4 btrfs swap
Unix : xfs ffs ufs jfs jfs2
光盘: ISO9660
Win : fat32/vfat ntfs
网络文件系统 :netnfs cifs
集群文件系统 :ocfs2 gfs2
分布式文件系统: ceph moosefs mogilefs hdfs gfs glusterfs

日志型文件系统 ext3非日志型文件系统 ext2
交换分区swap

创建文件系统
在分区上执行格式化(高级格式化)要使用某种文件系统,满足两个条件:内核中 支持此文件系统
用户空间 有文件系统管理工具
创建工具:mkfs (make filesystem) mkfs -t type DEVICE
mkfs.ext4
fsck
fsck.ext4
ext系列文件系统的专用管理工具:mke2fs -t ext2|ext3|ext4 DEVICE

blkid /dev/sda5 显示文件系统的详细信息练习6、复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;7、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留;8、替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;9、删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#;10、查找/var目录属主为root,且属组为mail的所有文件;11、查找/usr目录下不属于root、bin或hadoop的所有文件;12、查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件;13、查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;14、查找/etc目录下大于20k且类型为普通文件的所有文件;15、查找/etc目录下所有用户都没有写权限的文件;16、查找/etc目录下至少有一类用户没有执行权限的文件;17、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件;18、让普通用户能使用/tmp/cat去查看/etc/shadow文件;19、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;

相关推荐: win10系统网络连接受限或无权限访问网络怎么解决

本篇内容主要讲解“win10系统网络连接受限或无权限访问网络怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win10系统网络连接受限或无权限访问网络怎么解决”吧!解决方法:1、当Win10网络连接受限或出现…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/23 17:37
下一篇 07/23 17:37

相关推荐