Linux 基础之文件操作命令

1、复制文件

1. cp : copy的缩写 相当于windows中的复制粘贴:ctrl c 和ctrl v 
2. 格式:cp 参数 被复制的路径 复制到的新路径
3. 参数:
	-r或-R: 递归复制
	-p: 把原来目录的链接也一起复制过去(链接相当于windows中的快捷方式)
	-preserve: 保留原来的属性
	-a 原路径 新路径:保证部分属性不变
	
# 案例1:将/root目录下的 1.txt 复制粘贴到/tmp目录下:    
  [root@localhost ~]# cp -a 1.txt /tmp
# 案例2:将/root目录下的test文件夹及其内部的文件复制到/tmp中: 
  [root@localhost ~]# cp -r /root/test /tmp
# 案例3:将/etc/hosts和/etc/resolv.conf 同时复制到/tmp目录中
  [root@localhost ~]# cp /etc/hosts /etc/resolv.conf  /tmp

# 知识补充:
ls -l 等价于 ll  (举例 ll /root)
stat 路径: 查看该文件属性
在linux中没有提示就是最好的结果,因为提示就是报错
Esc. :直接拿到上一条命令的最后一个元素

image-20211210150004270

image-20211210151124141

image-20211210101041520

image-20211210152034613

image-20211210152428392

2、移动文件

1. mv: 相当于windows中的剪切粘贴: ctrl x 和ctrl v
2. 格式:mv 参数 原路径 新路径
3. 参数:
    -i: 若存在同名文件,则向用户询问是否覆盖
    -f: 覆盖已有文件时,不进行任何提示
    -b: 当文件存在时,覆盖前为其创建一个备份
    -u: 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作
    
# 案例1:移动文件:将/root目录下的1.txt移动到/opt目录中
  [root@localhost ~]# mv /root/1.txt /opt
# 案例2:移动文件夹:把root文件夹下的test文件夹移动到mmt目录
  [root@localhost ~]# mv test/ /mnt/

image-20211210153442366

image-20211210153829867

3、删除文件

删除文件有两种方式:物理删除和逻辑删除(把文件隐藏,未直接删除)

# 物理删除:直接把文件删掉(企业中不能随便用)
1. 格式:rm 参数 路径: remove的缩写rm 
2. 参数:
  -f 路径: 不提示直接删除
  -i 路径:提示删除
  -r 路径: 递归删除文件
  -rf 路径: 不提示直接删除文件夹(禁止使用删除根目录 rm -rf /*)
# 案例1:将/root目录下的1.txt删除
  [root@localhost ~]# rm 1.txt 
  [root@localhost ~]# rm -f 1.txt 
# 案例2:删除/root目录下的test文件夹及其内部所有的文件
  [root@localhost ~]# rm -r /root/test/
  [root@localhost ~]# rm -rf /root/test/
		
# 知识补充:
在linux系统中不能直接删除文件夹,需要用参数r
查看命令的存放路径:which 命令名  # which rm
怎么解决误操作rm的问题:修改rm命令的名字

image-20211210155241476

image-20211210102948292

image-20211210104155748

image-20211210103954460
image

4、系统别名

1. 关键字 alias
2. 格式: alias xxx = '命令'
  eg : alias abc='rm'
3. alias  : 查看系统别名
4. alias rm='xxx' : 设置系统别名
    
5. 不使用别名在命令前加个斜杠\:
  [root@localhost ~]# \rm 1.txt

image-20211210163624301

image-20211210175322410

5、vi、vim编辑器

vim是vi的升级版本编辑器,用于修改配置,写脚本等。类似于windowns的文本编辑器,比如记事本,word文档...
1、安装vim: yum install vim -y
2、打开文本编辑器:vim 文件路径 
	vim 1.txt
3、vi编辑器三种操作模式:
	命令模式:与输入模式可以互转(a,i,o三种模式)、与末行模式可以互转
	编辑模式:与输入模式可以互转
	末行模式:与输入模式可以互转
4、进入编辑模式:
	i	: 在光标之前输入
	o	:在光标处新创建一行
	a	:在光标之后输入
5、保存并退出:
	①先进入末行模式:按Esc,然后:键 
	②操作:w:保存;  q:退出;  !:强制
6、解决vim编辑异常(例如正常编辑的文件被删除了):
	①删除.1.txt.swp
	②继续编辑(-r)
		[root@localhost ~]# vim -r 1.txt
	③放弃编辑(-n)
		[root@localhost ~]# vim -n 1.txt
7、光标快速移动的快捷方式:
	快速切换到底行:G
	快速跳转到首行:gg
	快速跳转到行尾:$
	快速跳转到指定行:先进入末行模式,然后输入数字回车
	快速复制文本内容信息:yy,nyy(向下复制n行)
	快速粘贴文本内容:p(在光标的下一行粘贴);P(在光标的上一行粘贴)
	删除文本内容:dd(删除光标所在行); ndd(向下删除n行)
	回撤刚刚的操作:u
	撤回回撤:ctrl + r
	显示行号:先进入末行模式,然后输入set nu,回车
	取消行号:先进入末行模式,然后输入set nonu,回车
	搜索内容:先进入命令模式,然后输入/,输入需要搜索的内容,回车
		n:下一个
		N:上一个
		:set ic: 忽略大小写
	可视化编辑:ctrl + v,编辑:Shift + i,按 Esc键退出即可
# 知识补充:
	实时监控文件内容变化:tail -f 要监控的文件
	由于Xshell对vim编辑异常有做处理,现在演示出来:
		1、查看vim进程
			[root@localhost ~]# ps -ef | grep vim
		2、杀死vim进程
			[root@localhost ~]# kill -9 pid
	批量复制:
		[root@localhost ~]# while true;do echo "Hello World" >> 1.txt; done
		


![image-20211210165120122](https://s2.loli.net/2021/12/10/8qSNuloZEV4wb6L.png)

![image-20211210165241103](https://s2.loli.net/2021/12/10/yWDJ1mp68rHNL2o.png)

![image-20211210170437904](https://s2.loli.net/2021/12/10/c4A23RlZOvB1sou.png)


6、小练习

1. vim删除多行有几种方法?
	方法1:ndd; 方法2:ctrl v进入可视化编辑,选中多行删除。
2. vim中如何在前10行之前加上#?
	方法1:ctrl v进入可视化编辑,利用键盘的上下键选中需要的行,再进行操作。
	方法2:利用正则表达式:先进入末行模式,输入指定的行数(1,10),再输入替换的内容(s/被替换的内容/替换的新内容/g)
		:1,10 s/\(.*)/# \1/g
3. 知识补充:正则表达式:
	* :匹配任意字符的任意个数,除换行符(\n)之外
	. : 匹配某一个字符
	? :匹配零次或一次前导字符
	+ : 匹配一次或多次前导字符
	^ : 匹配以某个字符开头
	$ : 以某个字符结尾
	\ : 取消转义
	(): 分组
	[]: 或者(里面包含的任意一个字符)
	| :或者(两边的字符整体)
	{}:指定匹配个数
		{n}		: 匹配n次
		{n,m}	:匹配n到m次
		{n,}     :匹配至少n
		{,m}    :匹配最多n次
posted @ 2021-12-10 17:55  90啊  阅读(636)  评论(0编辑  收藏  举报