上次我们学习创建和删除文本的命令,文本创建后,需要对文档进行修改和操作:今天来学习下:
1、PATH:环境变量:
1.1:首先我们用which可以查看到一个命令所在的路径及它有没有别名:
[root@localhost ~]# which mvalias mv='mv -i' /usr/bin/mv
1.2:那么它是在哪里查询到的?实际它是从这几个路径中去寻找的,此时则需要用到PATH命令:
[root@localhost ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
1.3:当我们使用某个命令时,这个命令只有在上面的路径,才可以正常运行:
[root@localhost ~]# lsshell[root@localhost ~]# which ls #此时看到ls在/usr/bin/ls下才可以正常运行:alias ls='ls --color=auto' /usr/bin/ls[root@localhost ~]# fd #fd命令在上述路径中找到,所以无法正常运行:-bash: fd: command not found
1.4:但我们把ls挪到/tmp目录下并修改名称为ls3,则无法运行:因为ls3不在$PATH变量里,那我们把tmp目录加入到path在测试下:
[root@localhost ~]# cp /usr/bin/ls /tmp/ls2 #挪ls命令到tmp命令下,并修改名称:[root@localhost ~]# ls2 #再次查看则无法使用:-bash: ls2: command not found[root@localhost ~]# PATH=$PATH:/tmp #此时需把/tmp命令加入到环境变量之中,才可以正常使用:[root@localhost ~]# ls2shell
此时则可以正常用ls这个命令了,由于是在当前用户生效,当重新再开一个终端,也是不会生效,所有需要把命令添加到/etc/profile(全局变量)。
[root@localhost ~]# tail /etc/profile 3在/etc/profile里面加入则可以:PATH=$PATH:/tmp
总之一句话,也就是说只要是在PATH环境变量目录下命令,就可以正常使用。
附:有时候当我们直接在配置文件source /etc/profile修改了文件,可以使用以下命令来更新:
2、cp:(copy)复制命令:参数: -r(复制命令时需添加)
2.1:当复制文件或目录时,目标文件或者目录不存在,则直接复制:
[root@localhost ~]# touch 1.txt #创建一个文本1.txt:[root@localhost ~]# mkdir 123 #创建目录123:[root@localhost ~]# cp 1.txt /tmp/ #复制文本,当目标文件不存在,则直接复制:[root@localhost ~]# cp 123 /tmp/ #复制目录,因为没有加-r,所以失败:cp: omitting directory ‘123’[root@localhost ~]# cp -fr 123 /tmp/ #再次复制目录,当目标目录不存在,则直接复制:[root@localhost ~]# ls /tmp/1231.txt
2.2:当复制文件或目录时,目标文件或目录存在,则情况是不同的了:
当复制的是文件且存在时,则会提示是否覆盖源文件了:
[root@localhost ~]# cp 1.txt /tmp/cp: overwrite ‘/tmp/1.txt’?
此时有三种选项:
y : 确认复制:
n : 不复制:
回车:则不进行此操作:
当复制的是目录且存在时,则会自己