标签:linux
下列是linux学习的基本知识点梳理:
Vim编辑器
vi:visual interface
模式化:
编辑模式:命令模式
输入模式
末行模式
编辑模式--》输入模式
i:insert
a:append
o:new line
I:行首
A:行尾
O:新建上方
编辑模式--》输入模式
ESC
编辑模式--》末行模式
:
末行模式--》编辑模式
ESC
打开Vim
vim
vim /path/to/somewhere
+# :#为行号
关闭vim
:q 直接退出
:q! 强制退出
:wq 保存退出 同:x ;ZZ
光标跳转
h:左
j:下
k:上
l:右
单词件跳转
w:下一个单词词首
e:当前或下一个单词词尾
b:当前或前一个单词词首
行内间跳转
^:跳转至行首第一个非空白字符
0:跳转至行首
$:跳转至行尾
行间移动:
#G:
1G 第一行 G:尾行
编辑命令
字符编辑
x:删除光标所在处的字符
r:替换光标所在处的字符
删除
d:删除
d^:删除至行首
d$:删除至行尾
dd:删除整行
dw de db
删除内容会被vim编辑器保存至缓存区当中
粘贴
p
如果此复制或者删除的内容不是一正行
p:粘贴至当前光标所在处后面
P(大写):粘贴至当前光标所在处前面
如果复制或者删除的是一整行
p:粘贴至行下方
P:粘贴至行上方
复制
y
y^ y$ y0
yw ye yb
yy 复制整行
改变
c
同y d 操作
撤销此前操作
u :undo
撤销此前编辑操作
#u
Ctrl+r 回复之前撤销操作
.:重复前一个编辑操作
翻屏操作
Ctrl+f 向后翻一屏
Ctrl+b 向前翻一屏
Ctrl+d 向后翻半屏
Ctrl+u 向前翻半屏
vim 的末行模式
(1)地址 定界
:start_pos , end_pos
#:第#行
#,#:#行到#行
#,+#:#行到后面#行
.:当前行
$:最后一行
%:全文,相当于(1,$)
/part1/ :第一次被此模式匹配到的行
后可跟编辑命令
d y w r
(2)查找
/PATTERN :向尾部进行
?PATTERN:想首部进行
n:与命令向反方向
N:与命令向同方向
(3)查找替换
s:在末行模式下,在地址定界的范围内完成查找替换操作
s/要查找的内容/要替换的内容/修饰符
要查找的内容:可使用模式
要替换的内容:不能使用模式,但可以使用后引用符,以引用前面模式中的分组括号所 匹配到的内容
&:引用查找的内容匹配到正文中
修饰符
i:忽略大小写
g:全局替换
/:用于分割符,所以,要查找的内容或替换的内容中出现此符号,要使用\对其进行转意
\/
分割符可以替换成其他符号:@ #
多文件模式:
vim file1 file2
:next 下一个
:first
:prev
:last
:wqall
:q!all
多窗口分割
vim -o | O file1 file2
单文件窗口分割
Ctrl + w ,s :水平分割
Ctrl +w ,v :垂直分割
定制vim的某些特性
(1)行号
显示:set nu
禁用:set nonu
(2)括号匹配
显示:set sm
禁用:set nosm
(3)自动缩进
显示:set ai
禁用:set noai
(4)高亮搜索
显示:set hlsearch
禁用: set nohlsearch
(5)语法着色
显示:syntax on
禁用 : syntax off
:help 获取帮助
特性设定的永久生效方式:
全局配置文件:/etc/vimrc
用户个人配置文件:~/.vimrc
例:
复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;
复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的 行首加一个#; 原有空白字符保留;
替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;
删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#
find 命令
find [OPTIONS].....【查找路径】【查找条件】【处理动作】
查找路径:默认为当前路径
查找条件:指定的查找标准 可以根据文件名 大小 属主属组 类型等进行;默认找出当前路径的所有文件
处理动作:对符合条件的文件做什么动作;默认为输出屏幕
查找条件:
根据文件名查找
-name “文件名称” 支持glob
-iname “文件名称”不区分文件大小写
-regex “PATTERN”
根据属主属组查找
-user username 查找属主为指定用户的文件
-group groupname 查找属组为指定用户的文件
-uid userid 查找文件属主为指定uID的文件
-gid groupid 查找文件属组为指定uid的文件
-nouser:查找没有属主的文件
-nogroup :查找没有属组的文件
根据文件类型查找
-type type
f:普通文件
d:目录文件
l:符号链接
b:块设备
c:字符设备
p:命名管道
s:套接字
组合查找条件
与条件:-a
或条件:-o
非条件:-not !
!a -o !b =!(a -a b)
根据文件大小查询:、
-size 【+|-】#unit
单位为:k,M,G
根据时间戳:
以天为单位
-atime
-mtime
-ctime
以分钟为单位
-amin
-mmin
-cmin
根据权限
-perm 【/|-】 MODE
MODE :精确匹配
/mode:任何一类对象的任何一位权限符合条件即可
-mode :为每一个对象指定的每一位权限都必须同时存在符合条件
处理动作
-print 默认处理动作
-ls 类似查找文件“ls -l”操作
-delete 删除查找到的文件、
-fls /path/to/somefile 将查到的文件的详细路径信息保存到指定的文件中
-exec COMMAND {}\ 无需用户确认 执行
例:
查找/var目录属主为root,且属组为mail的所有文件;
查找/usr目录下不属于root、bin或hadoop的所有文件;
查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件;
查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;
查找/etc目录下大于20k且类型为普通文件的所有文件;
查找/etc目录下所有用户都没有写权限的文件;
查找/etc目录下至少有一类用户没有执行权限的文件;
查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件
bash环境变量
配置文件,生效范围划分,分为两类
全局配置
/etc/profile,/etc/profile.d/*.sh
/etc/bashrc
个人配置
~/.bash_profile
~/.bashrc
按照功能划分,分为两类:
profile类 为交互式shell提供配置文件
/etc/profile /etc/profile.d/*.sh
~/.bash_profile
定义环境变量 运行命令或者脚本
bashrc类 为非交互式shell提供配置文件
/etc/bashrc
~/.bashrc
定义命令别名 定义本地变量
变量:
类型:
环境变量:作用范围为当前shell 及其子进程
本地变量:作用范围为当前shell进程
局部变量:作用范围为当前shell进程中某代码片段
位置变量:$1 $2
特殊变量: $?
变量定义方式:
BASH 内置变量:可以直接调用,内置许多环境变量
自定义变量: 变量赋值:变量名=值
定义本地变量:
name = value
set 查看
定义环境变量:
export name=value
declare -x name =value
查看:env printenv export
撤销变量:
unset name
引用变量:
$name ,${name}
bash中的引用符号
“” 弱引用
‘’ 强引用
·· 命令引用
配置文件作用次序
交互式:
/etc/profile > /etc/profile.d/*.sh > ~/.bash_profile > ~/.bashrc > /etc/bashrc
非交互式:
~ /.bashrc > /etc/bashrc > /etc/pfofile.d/*.sh
linux文件系统上的特殊权限
权限模型:u g o
r w x
进程的安全上下文
前提:进程有属主;文件有属主和属组
(1)用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否 拥有执行权限
(2)程序启动为进程之后。此进程的属主为当前用户,也是进程的发起者,进程所属组,及用户的基本组
(3)进程拥有访问权限,取决其属主的访问权限
进程的属主,同文件的属主,则应用文件属主权限
进程的属主,属于文件的属组,则应用文件属组权限
否则应用其他权限
SUID
任何一个文件能否启动为进程,取决于发起者对程序文件是否有执行权限
启动为进程后,其属主不是发起者,而是文件自己的属主,这种机制SUID
chmod u + s file
chmod u - s file
注意:s:属主原本拥有x权限
S:属主原本不拥有X权限
SGID
默认情况下,用户创建文件时,其属组为次用户的基本组
一旦某目录被设定为SGID权限,则对此目录拥有写权限的用户在次目录创建的文件所属的组为目录的基本 组,而非用户的基本组
Sticky
对于一个多人可行的目录,此权限用于限定每个用户仅能删除自己的文件
chmod o+t file
chmod o-t file
例
让普通用户能使用/tmp/cat去查看/etc/shadow文件
创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此 外,每个用户仅能删除自己的文件;
标签:linux
原文地址:http://10498794.blog.51cto.com/10488794/1691372