linux(二)(常用 tar find vim)

 

(31) gzip

-c 将压缩的数据输出到屏幕 ,可使用管道

-d 解压缩的参数

-t 检查错误

-v 显示信息

-# 压缩等级 -1最快  -9最慢效果最好

zcat  查看解压缩后的内容

bzip2

-c 将压缩的数据输出到屏幕 ,可使用管道

-d 解压缩的参数

-z 压缩参数

-t 检查错误

-v 显示信息

-k 保留原文件

-# 压缩等级 -1最快  -9最慢效果最好

bzcat  查看解压缩后的内容

 

(32) tar

-c 新建打包文件

-v 显示处理信息

-f 后接要生成的文件名

-x 解打包或解压缩参数 可搭配-C解到指定目录 -x -c -t 不可同时出现

-j 通过bzip2 进行解压缩操作 *.tar.bz2

-z 通过gzip 进行解压缩擦做 *.tar.gz

-C 解包到那个目录

-t 查看打包文件包含哪些文件

-p 保留原本的权限属性 常用于备份重要配置文件

-P 保留绝对路径 即允许备份文件中含有根目录

-r 像压缩文档里追加文件

-u 表示追加同名文件时更新的文件才能进行追加

-A 拼接两个压缩文件

-d 比较压缩文件中的文件与文件系统中的文件差异  tar -df  xx.tar.gz afile bfile

--delete tar -f xx.tar.gz --delete file1

--exclude=FILE 压缩时忽略FILE文件

-X exc_file 将排除的文件列在文件中

--exclude-vcs 排除版本控制目录 比如 .git .svn

--tatals 打印总字节数

压缩:tar -zcvf filename.tar.gz  要被压缩的文件或目录

   tar -jcvf filename.tar.bz2

解压:tar -zxvf filename.tar.gz -C 要解压到的目录

   tar -jxvf filename.tar.bz2 -C 目录

查看:tar -ztvf filename.tar.gz

   tar -jtvf filename.tar.bz2

解开单一文件:tar -jxvf filename.tar.bz2 带解开的文件名

忽略某些文件: tar -jcvf filename.tar.bz2--exclude=/root/*.tar.bz2 --exclude=/root/*.tar.gz  /root

打包比某个时刻还要新的文件:

--newer:包含mtime 及 ctime

--newer-mtime:只包含mtime

tar  -jcvffilename.tar.bz2 --newer-mtime="2014/10/10" /root/*

将文件一边打包在另一边解包:

tar -cvf - /root/*  |  tar -xvf -

 

(33)  find [PATH][option] [action]

1 与时间有关参数  -atime -ctime -mtime

-mtime [n, -n +n]  4意为 在四天之前的"一天之内"被更过的文件    +4 意为 4天之前"不含4天本身"被更过的文件    -4 意为 4天之内的"包含四天本身"被更过的文件 (单位:天)

-amin,cmin,mmin 按多少分中内修改的文件 (单位:分)

-newer file  file 为一个存在的文件表示 列出比file还要新的文件名

-anewer cnewer mnewer 具体到某种时间

-used +-num天 num天被存取过的文件或目录

2 与用户组有关参数

-uid n    -gidn    -user name     -group name  

-nouser   寻找文件所有者不在passwd 的人的文件

-nogroup  同上 不在 group 中的文件

3 与文件权限及名称有关参数

-name filename

-iname 忽略大小写

-inum  按照inode节点来查找

-empty 查找空文件

-xdev 仅在当前挂在分区上查找

-mount  查文件时不跨越文件系统mount点

-follow  如果遇到符号链接文件,就跟踪链接所指的文件

-depth  使查找在进入子目录前先行查找完本目录

-maxdepth mindepth 限定查找目录深度

-cpio  对匹配的文件使用cpio命令,将他们备份到磁带设备中

-prune  忽略某个目录

-links +-num  查找硬链接为num 的文件或目录

-fstype  查位于某一类型文件系统中的文件,这些文件系统类型通常可在/etc/fstab中找到

-size [-+ b c w k M G] SIZE 查找比SIZE还要大+ 小- 的文件 b块=512字节  c字节  w字=2字节 

-type TYPE 查找文件类型为 TYPE的文件    类型: f 一般文件 ,b 块设备 ,c 字符设备 ,d 目录, l 链接 , s socket , p FIFO管道

-perm mode  查找文件权限刚好是mode值的文件

-perm -mode 查找权限 "全部包括mode值的权限"的文件  及mode值小于查找值 (根据rwx=421推算)

-perm +mode 查找权限 "包含任一mode值的权限"的文件 及mode值大于查找值

4 action

-o  逻辑或

-a 逻辑并 默认

-not 逻辑非 相反匹配 等同于 !

-print 将结果打印在屏幕上 默认操作

-print0 以'\0'作为字符结束 在字符中包含了'\n'的情况有用

-exec commond  commond用于处理查找结果   类似-exec  ls -al {}空格\; {} 代表每一行的文件名

-delete 删除匹配的文件

在搜索的文件量过大时使用xargs代替exec 效果更好原因:

       find命令运行完之后会把找到的文件名一起传递给exec执行,而exec的命令参数长度有限制,xargs分批获取find传递的文件作以操作,另外一个可能的原因是xargs处理时只有一个进程,exec可能会为处理每一个匹配到的文件而发起一个相应的进程

find . -type f -name "*.txt" -print0 | xargs -0 rm -f 

在find与xargs结合使用时 最好使用-print0 作为输出 避免hell text.txt 被识别为两个文件 -o表示以'\0'作为输入界定符

echo "delxdelxdelxdel" | xargs -d x -n 2 以x作为分隔符 分割为2行

-ok 同上 只不过要询问

 

用户行为与权限的关系

用户进入一个目录需要X权限 对目录内ls 需要r

用户在某一目录读取文件 需要对目录X权限 文件R权限

用户修改一个文件 目录需要X权限 文件需要rw 权限

用户创建文件 目录需要wx权限

用户进入某目录 并执行该目录下的命令  目录需要x 文件需要x

 

3 shell相关

(1)   VIM

移动光标:

k j 上下 h l   左右  30j 向下移动30行

ctrl + f  向前(下)翻动一页 pageDOWN(forward)

ctrl + b 向后(上)翻动一页  pageUp (back)

ctrl + d 向下移动半页

ctrl + u 向上移动半页

 

+  光标移动到非空格符的下一行

-   光标移动到非空格符的上一行

n<space> 当前行 光标移动n个字符

n[ENTER] 光标向下移动n行

0或HOME键  移动到当前行的最前面的字符处

$或End键   -----最后面字符处

^ 移动到当前行第一个非空字符处

g_ 移动到当前行最后一个非空字符处

w  跳到下一个单词的开头

e  ----------------末尾

W  跳到下一组单词的开头

E  ----------------末尾

% : 匹配括号移动,包括 (, {, [.

*(对比#) : 跳到当前光标的下一个(上一个) 相同单词的地方(高亮显示)

fa 在当前中跳到下一个a的位置  a是单字符

ta 同上 不过跳到下一个a位置的前一位

3fa 当前行中跳到第三次a出现的位置 如果有的话

F,T 与f,t功能类似不过正好相反

dfa,dta 删除到下一个a

 

H  (hight)  光标移动到屏幕最上方的第一个字符

M  (middle) -----屏幕中央的第一个字符

L   (low)  -----最下方的第一个字符

G   移动到文件的最后一行

nG 移动到文件的n行

gg  移动到文件第一行

:5  定位到第五行

 

查找替换:

/word 向下查找word

?word 向上查找

n 重复前一个查找

N 重复前一个查找(反向)

:n1,n2s/word1/word2/g 将n1到n2之间的word1 替换为word2

:1,$s/word1/word2/gc     将第一行到最后一行的word1-----(confirm)

:%s/word1/word2/g全部替换

:1,10s/^/#/g   注销1至10行

:1,10s/#//g    反之

:1,10d         删除1至10

:1,10>>        1至10行向右移动两个tab

:1,10<<        反之

 

删除复制粘贴

x,X 向后删除 向前删除

nx  向后删除n个字符

dd 删除光标所在行

ndd 删除光标所在向下n行

d1G 删除光标所在行到第一行的全部数据

dG  删除光标行到最后一行全部数据

d$  删除光标所在处到本行最后一个字符

d0  删除--------第一个字符

dw  删除光标到单词结尾处(包括紧随其后的空格)

cw --------------------(不包紧随其后的括空格)

yy  复制当前行

nyy  复制光标所在向下n行

y1G 复制光标所在行到第一行全部

yG  ---------最后一行

ye  当前光标到单词末尾

y$  光标所在处到本行最后一个字符

y0   -----第一个字符

p, P  光标所在行的下一行粘贴P上一行(同大O小o类似)

 

J (join) 将光标所在行与下一行结合成一行

c  重复删除多个数据如向下删除10行10cj

u 撤销

ctrl + r (可恢复撤销)重做上一个操作

.    重复前一个操作

N<命令> → 会重做这个命令N次.

 

i,I  i在目前光标所在处插入  I 在目前光标所在行的第一个非空字符出插入

a,A  在目前光标后插入A 在目前光标所在行的最后一个非空字符插入

o,O 所在行的下一行插入    O 所在行的上一行插入       (新行)

r,R 替换一次 R一直替换

 

冒号用法:

:w!  强制保存

:w [filename]  有文件则另存为  没有则保存到源文件(:saveas filename 同效)

:n1,n2 w [filename] 将 n1到n2的内容保存到filename

:q   离开

:q!  强制离开不保存

:qa! 即使在缓存中还有修改的也退出

:wq  保存退出

:ZZ , x 修改则保存退出 未修改则不保存,退出

:e filename 离开当前编辑文件(修改未保存将不成功) 打开filename编辑

:r [filename] 将读取的文件内容加到光标所在行的后面

:r scp://yourhost//your/file  读取远程文件到VIM

:r! ls 将shell执行结果读入文档

:! command  暂时离开vim 到命令模式下执行command的显示结果

:<开始位置><命令><操作行数>

       :10d12  删除12行 包含第十行

       :10y12  复制12行 包含第十行

 

10d12   从光标所在处删除10*12+1=121行

10y12   从光标所在处复制10*12+1=121行

10iword[Esc] 重复输入word10次

 

<action>a<object>和<action>i<object>

       action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)。

       object 可能是:w一个单词,W一个以空格为分隔的单词,s一个句字,p一个段落。也可以是一个特别的字符:"、'、)、}、]。

假设你有一个字符串(map (+) ("foo")) 而光标键在第一个o的位置。

       vi"→ 会选择foo

       va"→ 会选择"foo"

       vi)→ 会选择"foo"

       va)→ 会选择("foo")

       v2i)→ 会选择map (+) ("foo")

       v2a)→ 会选择(map (+) ("foo"))

 

v   字符选择 会将光标经过的地方选白

V  行选择 ------

ctrl + v 块选择 可以用长方形的方式选择

y   将选白的内容复制起来

d   将选白的内容删除

gu  将选中的单词变成小写

gU  ----------------大写

批量插入操作(光标处插入)

       1:ctrl + v 选择需要修改的行

       2:I或A插入需要的字符;J 将选中的行连成一行;> 或< 缩进 ; = 自动缩进;

       3:Esc完成

ctrl + n 单词补全

 

宏录制:

       1:qa开头

       2:操作

       3:q结尾

使用@a  @@使用最近录制的宏  n@@重复n次最近的宏

 

vim filename空格+num
表示打开文件并跳转到num行号

 

vim file1 file2  多文件同时编辑

:n 编辑下一个文件

:N 编辑上一个文件

:files  列出目前vim打开的所有文件


多窗口编辑

:sp [filename] filename 可有可无   仅输入:sp 则是打开一个文件在两个窗口间

使用 ctrl + w + j或向下键 k或向上键切换窗口  (按下ctrl + w 之后放开再按上下键 即可切换)

ctrl + w + q 结束当前窗口

 

分屏split vsplit(垂直分屏)

:split

使用ctrl + w + 方向键

ctrl + w + _ 当前窗口最大化(ctrl+w+|垂直分割时使用)

ctrl + w + + 增加当前窗口大小(- 减少-------------)

:q 推出当前窗口

 

set  nu /nonu  设置行号

set  hlsearch/nohlsearch  搜索高亮显示

set  autoindent /noautoindent  自动缩排

set  backup/ nobackup  自动备份 filename==>filename~

set  ruler/ noruler 设置右下角状态栏的显示

set  showmode/noshowmode  是否显示--insert--之类的字眼在左下角的状态栏

set  backspace=(012)等于2 可以删除任意字符 01表示只能删除刚才输入的字符 无法删除原本字符

set  all 显示所有的环境参数设置

set  显示与系统不同的设置参数,一般是自行变动过的设置参数

syntax on/ off  开启语法颜色区别

set bg=dark/ light  设置显示不同的颜色色调

 

vimdiff /etc/hosts host 利用vim 对比文件

vimtutor vim使用帮助  或:help


vim打开文件时的警告信息

[O]pen Read-Only  :打开此文件为只读 

[E]dit anyway : 正常方式打开文件编辑 并不会读取暂存文件内容 即忽略暂存文件

[R]ecover : 加载暂存文件内容 救回之前编辑的内容 完成退出以后还需手动删除暂存文件

[D]elete it : 打开文件前先删除暂存文件 比较常用

[Q]uit : 离开vim 回到命令提示符

[A]bort : 忽略这个编辑行为  与quit差不多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值