Linux文件相关

文件查找命令

locate       根据本地数据库进行查找
yum install mlocate -y  下载软件包
updatedb     需要更新数据库
locate -r hostname$      支持正则,需要 + -r

which        查找命令的绝对路劲(注意是命令,用的最多)

whereis      查找文件

type         查看命令类型
type -a      查看内置命令的绝对路径

find         查找文件
find / -type f -name "hostname"(f代表普通文件)

文件上传与下载


    curl            通过url的方式进行文件传输
	curl -o 路径名   指定下载路径
	
	wget             下载软件包
	wget -O 路径名    指定下载路径

本地上传与下载命令
	yum install -y  lrzsz    下载软件包
	rz                       上传,支持上传4g以下的
	rz -E                    出现名称相同进行重命名,名称规则加正整数(0~255) 
	
	sz                       下载

字符处理命令

sort               排序
sort -t            指定分隔符,默认以空白字符为分隔符
	-k            指定列数,默认第一列
	-n            以数字大小方式进行排序
	-r            倒序
sort -t ':' -rnk2 file.txt  以:分割,按第二列数字倒序排

unip               去重,统计,只能去重重复相邻的行
unip -c            统计次数

cut                取列,默认以tab键为分隔符
cut -d             指定分隔符
	-f             指定取出的列
	-c             取指定的字符

wc                  统计
wc  -l              统计文件行数
	-c              统计文件字节数
	-w              统计文件列数
	
tr                   替换
tr -d                删除字符
tr 'a' 'b'           将a替换成b
tr -d a              将a删除
tr 'a' 'b' < file.txt  直接操作文件

sed

sed             擅长替换,增删改查
选项
	-i 替换
	-n 取消默认输出
	-r 支持扩展正则
	-i.bak 先备份后替换
	p  打印
	d  删除
	s  替换
	g  全局
	a  追加
	i  插入
	$  结尾
查
	sed -n '11,20p'  services  取出第11行到20行
	sed -n '20p'  services     取出单行
	sed -n '11p;20p'  services 取出11行和20行
	sed -n '/root/p' passwd     过滤字符
	sed -n '/root|halt/p' passwd  过滤过个字符

删
	sed '5d' test.txt        删单行
	sed '3,5d' test.txt      删连续的多行
	sed '3d;5d' test.txt     删不连续的多行
	sed '/oldboy/d' test.txt 根据字符串删

改
	sed 's#oldboy#oldgirl#g' test.txt
	sed -i 's#oldboy#oldgirl#g' test.txt  真正替换文件内容(加 -i)
	sed -i.bak 's#oldboy#oldgirl#g' test.txt 先备份后修改(源文件在test.txt.bak中)
	sed '1,3s#jason#egon#g' test.txt  将第一行和第三行进行修改


增
	sed '2aegon' test.txt  将egon追加到第二行后面
	sed '3iegon' test.txt  插在第三行前面
	sed '$aegon' test.txt  插在最后面
	sed '1iegon' test.txt  插在最前面

临时关闭selinux
	setenforce 0 
永久关闭selinux
	sed '7s#enforcing#disabled#g'  /etc/sysconfig/selinux -i

awk

选项
    NR                               取行
    -F                               指定分隔符
    $n                               取某列
    $NF                              最后一列
    $0                               表示整行内容
    !                               去反
取行
    awk 'NR==1' passwd           取出第一行(NR行数)
    awk 'NR==1,NR==3' passwd     取出第一道第三行
    awk 'NR==1;NR==3' passwd     取出第一和第三行
    awk 'NR>=1 && NR<=3' passwd  取出第一到第三行(并)
    awk 'NR<3 || NR>3' passwd    除了第三行(或)

过滤
    awk '/root/' passwd            过滤
    awk '/root|halt/' passwd       过滤多个
    awk '!/\/sbin/\/nolog/' passwd 取反

取列
	awk -F '[:]' '{print $2}' passwd     -F指定分隔符,$2取第二列

文件属性

-rw-r--r--. 1 root root         17 Aug 15 21:13 123.txt

-rw-r--r--.       类型和权限 - 文件类型
1                 表示硬连接的数量
root              属主
root              属组
17                文件大小
Aug 15 21:13      最后的修改时间
123.txt           文件名


文件类型
	-            普通文件
	d            目录
	l            软链接文件
	b            块设备
	c            字符设备
	s            套接字文件
	p            管道文件
	
	find / -type p -ls     查看p(管道)文件类型
	
	file                   查看文件的类型
	
	扩展名
		txt
		log
		sh
		py
		html
		php
		conf
		zip
		tar.gz
		cfg

链接文件

用户数据:数据块,数据的真实存放位置,block
元数据:文件属性信息,inode

软链接:一个快捷方式,存放了原文件的路径和文件名
    ln -s nginx-1.16 nginx     创建软链接
    rm -f nginx && ln -s nginx-1.17 nginx   版本升级
    rm -f nginx && ln -s nginx-1.16 nginx   版本回退
    软链接和源文件属于不同的类型的文件
    软链接文件中存放的是源文件的路径
    软链接可以跨区创建,文件目录都可以创建
    删除源文件,软链接文件存在,但会失效
    主要用于企业版升级、代码上线、目录找不到
 
 硬链接
 	ln 123.txt f.link    创建硬链接文件
 	硬链接文件跟源文件inode号是相同的
 	只能对文件创建硬链接,不能对目录创建
 	
 软链接和硬链接的区别:
 	概念上:软链接相当于Windows上面的快捷方式,硬链接就是给源文件加一个入口
 	创建上:ln命令默认创建硬链接,只能对文件创建,ln命令加上选项-s创建软链接,可以跨区创建
 	删除上:删除软链接文件,对源文件和硬链接文件没有影响;删除硬链接文件,对源文件和软链接没有影响;删除源文件,硬链接没有影响,软链接失效,成红底白字闪烁状;只有 删除源文件和硬链接文件,文件才会被真正删除

命令执行过程(扩展)

hash表
hash            查看命令缓存
hash -d name    删除指定命令缓存
hash -r         清空hash表

vim文件编辑器

命令模式(普通模式)
编辑模式
末行模式(底行模式)

命令模式

光标移动,删除,复制,粘贴
	l 当前光标向右移动一个字符,nl移动多个
	h 当前光标向左移动一个字符,nh移动多个
	j 当前光标向下移动一个字符,nj移动多个
	k 当前光标向上移动一个字符,nk移动多个
	^ 当前光标移动到当前行的行首
	$ 当前光标移动到当前行的行尾
	G 移动到文件的行尾
	gg 移动到文件的行首
	ngg 跳转到某行(n表示数字),nG
	dd 删除当前光标所在行
	ndd 删除当前光标所在行向下多少行,包含当前行
	dG  删除当前光标向下的所有内容
	p 在当前行的下一行粘贴,粘贴多次就是np
	P(大写) 在当前行的上一行粘贴,粘贴多次就是np
	yy 复制当前行
	nyy 复制当前行向下多少行,包含当前行
	r  单个替换当前光标所在位置进行替换
	R  多个替换
	u  撤销
	Ctrl+r  回滚(回滚撤销)
	de/dw  删除当前光标向后的一组字符
	D   删除当前所在光标向后的所有内容
	x/delete   从当前光标所在位置从前向后删除一个
	X   从当前光标所在位置从后向前删除一个
	Ctrl+f  向下翻页
	Ctrl+b  向上翻页

编辑模式

i	在当前光标所在字符前插入字符
I   在当前光标所在行的行首插入字符
a	在当前光标所在字符后插入字符
A	在当前光标所在行的行尾插入字符
o	在当前行向下另起一行进行编辑
O	在当前行向上另起一行进行编辑
C(大写)	删除当前光标所在位置向后的当前行内容,并进入编辑模式
ce/cw	删除当前光标所在行的位置一组字符串,并进入编辑模式
s	删除当前所在字符,并进入编辑模式
S	删除当前所在行,并进入编辑模式

esc	退出编辑模式

末行模式

:w	保存
:q	退出
:wq	保存退出
:x	保存退出
ZZ	保存退出
/	搜索(n向下查找,N向上查找)
:n	数字,跳转到某行
:nd	删除某行
:n,md	删除从n行到m行

:w /root/test.txt	把当前文件的内容保存到一个新的文件中
:r /root/test.txt	从某个文件读入内容进入该文件
:10r /root/test.txt	从某个文件读入内容进入该文件放在第10行后面

替换
	:%s#old#new#g	全局替换
	:1,4s#old#new#g	1到4行进行替换

视图模式

批量添加
	光标移动到要添加内容的第一行或最后一行
	Ctrl+v	进入可视块模式
	使用光标选中添加的位置
	shift+i	进入编辑模式
	输入要添加的内容,只输入一行就行了
	按esc退出
批量删除
	光标移动到要删除内容的上面,第一行或最后一行
	Ctrl+v	进入可视块模式
	选中要删除的内容
	按d/x删除
	esc退出
	
批量删除行(移动,剪切)
	光标移动到要删除行的上面,第一行或最后一行
	shift+v	进入可视行模式
	选中要删除的内容
	d 删除
批量复制行
	光标移动到要复制行的上面,第一行或最后一行
	shift+v	进入可视行模式
	选中要复制的内容
	yy	复制
	p	粘贴

vim工作方式

vim打开一个文件,进入的是命令模式
在编辑文件的时候,系统会生成一个临时文件
在退出文件之后,系统会自动删除临时文件

vim故障

在编辑文件时非正常退出
再次进入时,会提示警告

解决:
	vim -r 文件名
	保存退出
	删除临时文件
	rm -r .services.swp

vim变量

:set nu	显示行号
:set list	给每行的结尾加个标识符
:set ic	搜索时忽略大小写
:set nonu	取消行号
:set nolist	取消标识符
:noh	取消高亮

vim配置文件(个人)
	cat .vimrc
	set nu
vim配置文件(全局)
	/etc/vimrc

文件比对

diff	不推荐使用
vimdiff	推荐使用
vimdiff	文件名1 文件名2	退出按两次退出
vimdiff	-o 文件名1 文件名2	水平分割

vim打开多个文件

vimdiff	-o 文件名1 文件名2	水平分割
vimdiff	-O 文件名1 文件名2	垂直分割

切换文件时,使用Ctrl+ww

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值