mv
移动文件相当于剪切:
mv:将Linux当中的某个文件移动到指定目录
格式:
mv [选项][原来的文件路径][现在的文件路径]
mv命令后面既可以跟绝对路径也可以跟相对路径
选项:
-i :覆盖前提示
eg :
例1 :将1.txt移动到/tmp目录中
[root@localhost ~]$ mv 1.txt /tmp
例2 :将/root/2.txt 移动到/tmp目录中
[root@localhost ~]$ mv /root/2.txt /tmp
例3 :将/var/log目录移动到/tmp目录中
[root@localhost ~]$ mv /var/log/ /tmp/
例4 :将/root目录中的所有文件移动到/tmp目录中
[root@localhost ~]$ mv /root/* /tmp/
例5 :将/root目录下的abc1 ~ abc9 移动到/tmp目录中
第一种方式:
[root@localhost ~]$ mv /root/abc{1..9} /tmp/
第二种方式:
[root@localhost ~]$ touch abc{1..9}
[root@localhost ~]$ ls
abc1 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
[root@localhost ~]$ mv /root/abc* /tmp/
[root@localhost ~]$ ls /tmp/
abc1 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
第三种方式:
[root@localhost ~]$ touch abc{1..9}
[root@localhost ~]$
[root@localhost ~]$ ls
abc1 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
[root@localhost ~]$ mv /root/abc? /tmp/
[root@localhost ~]$ ls
[root@localhost ~]$ ls /tmp/
abc1 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
例6 :将/root 目录中的abc1 ~ abc9 移动到/tmp 目录中
[root@localhost ~]$ touch abc{1..19}
[root@localhost ~]$ ls
abc1 abc10 abc11 abc12 abc13 abc14 abc15 abc16 abc17 abc18 abc19 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
[root@localhost ~]$ mv /root/abc? /tmp/
[root@localhost ~]$ ls
abc10 abc11 abc12 abc13 abc14 abc15 abc16 abc17 abc18 abc19
[root@localhost ~]$ ls /tmp/
abc1 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
例7:将/root目录下abc1 ~ abc99 移动到/tmp目录中
[root@localhost ~]$ mv /root/abc{?,??} /tmp/
cp : copy的缩写
格式:
cp [选项(非必须)] [原路径][新路径]
选项:
-r : 递归复制目录
-a : 保证某些属性不变
-i : 增加覆盖提示
-p : 保留原有文件的属性
-d : 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
例1:将1.txt复制到/tmp目录
[root@localhost ~]$ cp 1.txt /tmp/
[root@localhost ~]$ ls
1.txt 2.txt 3.txt 4.txt test
[root@localhost ~]$ ls /tmp/
1.txt
例2:将/root目录下的test文件夹及其内部的文件复制到/tmp中
[root@localhost ~]# cp -r /root/test /tmp
例3:将/var/log目录及其目录中的所有内容全部复制到/tmp目录
[root@localhost ~]$ cp -r /var/log /tmp/
[root@localhost ~]$ ls /tmp/
1.txt ks-script-AD1ezZ log vmware-root_935-3980298462 yum.log
[root@localhost ~]$ ls /var/log/
anaconda boot.log-20210915 dmesg.old maillog spooler vmware-vgauthsvc.log.0 yum.log
audit btmp firewalld messages tallylog vmware-vmsvc-root.log
boot.log cron grubby_prune_debug rhsm tuned vmware-vmtoolsd-root.log
boot.log-20210914 dmesg lastlog secure vmware-network.log wtmp
[root@localhost ~]$ ls /tmp/log/
anaconda boot.log-20210915 dmesg.old maillog spooler vmware-vgauthsvc.log.0 yum.log
audit btmp firewalld messages tallylog vmware-vmsvc-root.log
boot.log cron grubby_prune_debug rhsm tuned vmware-vmtoolsd-root.log
boot.log-20210914 dmesg lastlog secure vmware-network.log wtmp
例3: 仅将/var/log/messages、/var/log/boot.log、/var/log/vmware-network.log三个文件复制到/tmp
[root@localhost ~]$ cp /var/log/{messages,boot.log,vmware-network.log} /tmp/
例4: 将/etc/system-release 复制到 /tmp目录下
[root@localhost ~]$ cp -d /etc/system-release /tmp/
例5: 复制2.txt到/tmp目录中,要求不更改其创建时间
知识储备:
stat : 查看文件创建时间的
[root@localhost ~]$ cp -p 5.txt /tmp/
补充:
Esc + . : 上一条命令的最后一个元素
stat : 查看文件详细属性
批量复制
[root@localhost ~]# while true;do echo "Hello World" >> 1.txt; don
Linux 中一切皆文件,删除文件有两种方式:
1. 物理删除: 直接删除
2. 逻辑删除: 将文件隐藏,没有直接删除
rm :一个物理删除文件的命令
格式 :
rm[选项][被删除文件的路径]
解决rm命令误操作
将rm命令改一个名称。
第一种:修改别名
[root@localhost tmp]$ alias rm="fgfbasdb"
[root@localhost tmp]$ rm -rf /tmp/*
-bash: fgfbasdb: command not found
第二种:将rm命令修改名字
[root@localhost tmp]$ mv rm abcdefg
选项 :
-i : 删除前提示
-r : 递归删除目录及其内容
-f : 忽略不存在的文件和参数,从不提示
例1:将/tmp目录下所有的文件全部删除
[root@localhost tmp]$ \rm /tmp/*
[root@localhost tmp]$ ls
例2:删除/tmp目录下的test目录
第一种情况:空目录
rm -r test/
第二种情况:非空目录
rm -rf test/
相等于
(rm -r -f test/)
例3:删除/tmp目录下以abc开头的文件
[root@localhost tmp]$ rm -f /tmp/abc*
[root@localhost tmp]$ ls
test1 test10 test2 test3 test4 test5 test6 test7 test8 test9
which :查看命令的真实路径
格式 :
which [具体的命令]
例1:查看rm命令的路径
[root@localhost tmp]$ which rm
alias rm='rm -i'
/usr/bin/rm
alias
格式:
alias xxx='命令'
alias : 查看系统别名
alias rm='xxx' : 设置系统别名
不使用别名,就在命令之前添加\
[root@localhost ~]# \rm 1.txt
用来修改文件
vi :
vim : vim是vi的升级版(颜色)
vim的三种模式
命令:进入修改文件的第一个模式,主要功能是使用各种快捷键
末行:对文本进行处理,比如:替换
编辑:用来修改文件内容
格式:
vim [选项(非必须)][被修改文件的路径]
vi /vim编辑器的原理
1. vi xxx.txt(检查.xxx.txt.swp 是否存在)
2. 读取xxx.txt的内容
3. 创建一个名为.xxx.txt.swp 的隐藏文件
4. 修改文件(修改.xxx.txt.swp文件)
5. 保存文件 (.xxx.txt.swp文件存入xxx.txt中)
6. 退出编辑(删除.xxx.txt.swp文件)
选项:
-r :继续输入编辑,把原来没有保存的内容通过-r形式依然继续输入
安装vim
知识储备:
1、进入/etc/yum.repos.d目录
cd /etc/yum.repos.d
2、删除所有的文件
rm -rf ./*
3、编辑CentOS-Base.repo
vi CentOS-Base.repo
[base]
name="Hello World"
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
gpgcheck=0
4、安装
yum install vim -y
所有模式适用:
上下左右键 :控制光标的位置
w :保存
q : 退出编辑
wp/x: 保存并退出
!:强制退出(不保存退出,必须跟在指令后面)
n : 直接跳转到第 n 行
set nu : 显示行号
set nonu : 取消行号
作用开始的行号,作用结束的行号
s#[被修改的内容]#[修改的内容]#g
0,410 s#man#MAN#g
% : 代表的是文本有多少行
1. 删除.1.txt.swp
2. 继续编辑(-r)
[root@localhost ~]# vim -r 1.txt
3. 放弃编辑(-n)
[root@localhost ~]# vim -n 1.txt
i :进入编辑模式 (在光标之前输入)
a : 进入编辑模式 (在光标之后输入)
o : 进入剪辑模式 (在光标所在位置另起一行输入)
0 : 光标跳转到行首
$ : 光标跳转到行尾
gg : 跳转到首行
G : 跳转到末行
dd : 删除当前行
ndd : 在光标所在位置向下删除 n 行
u : 回撤(windows中的ctrl + z)
ctrl + r : 撤回回撤
yy : 复制光标所在行
nyy : 在光标坐在位置向下复制 n 行
p : (大写) 粘贴到光标的下一行
P : (小写) 粘贴到光标的上一行
/ : [搜索的内容] 在文本中搜索相关内容,
按 n 键,下一个, 按 shift + n 键/N,上一个
:set ic : 忽略大小写
x :删除选中的内容
ctrl + v : 可视化编辑模式 (选中内容)
shift + i : 进入可视化编辑模式
1. 按 shift + i 进入可视化编辑模式
2. 编辑一行
3. 按 Esc 退出编辑
4. 按向下键(可按可不按)
tail -f [要监控的文件]
演示Vim编辑异常
1. 查看vim进程
[root@localhost ~]# ps -ef | grep vim
2. 杀死vim进程
[root@localhost ~]# kill -9 pid