mv=move ,命令格式为:mv 参数 源文件或目录 目标文件或目录 该命令有以下几种状况 ,安全
[root@localhost lic]# mkdir /tmp/test_mv [root@localhost lic]# cd /tmp/test_mv/ [root@localhost test_mv]# mkdir 1 2 [root@localhost test_mv]# mv 1 3 [root@localhost test_mv]# tree . ├── 2 └── 3 2 directories, 0 files [root@localhost test_mv]# mv 2 3 [root@localhost test_mv]# tree . └── 3 └── 2 2 directories, 0 files [root@localhost test_mv]# touch 3/1.txt 3/2/2.txt [root@localhost test_mv]# tree . └── 3 ├── 1.txt └── 2 └── 2.txt 2 directories, 2 files [root@localhost test_mv]# mv 3/1.txt 4.txt [root@localhost test_mv]# tree . ├── 3 │ └── 2 │ └── 2.txt └── 4.txt 2 directories, 2 files [root@localhost test_mv]# mv 4.txt 3/2/2.txt mv:是否覆盖"3/2/2.txt"? y [root@localhost test_mv]# tree . └── 3 └── 2 └── 2.txt 2 directories, 1 file
如上图所示,第一条命令是建立了一个测试用的目录,这样作是为了保持文件和目录的简洁,随后在/tmp/test_mv 目录下建立了1 和2 两个目录,执行mv 1 3 结果能够看到是将1目录重命名为3目录。执行mv 2 3 结果是将2目录移动到了已存在的3目录当中。而后又建立了两个文件3/1.txt 和3/2/2.txt ,执行mv 3/1.txt 4.txt 能够看到本来4.txt 是不存在的,执行完以后发现将3/1.txt 移动到了当先目录/tmp/test_mv 下并重命名为4.txt ,最后一条指令 mv 4.txt 3/2/2txt ,3/2/2.txt 是本来就存在的,发现系统会提示是否覆盖该文件。bash
cp=copy 该命令用于复制,其参数以下less
[root@localhost test_mv]# cp 3/2 3/4 cp: 略过目录"3/2" [root@localhost test_mv]# tree . └── 3 └── 2 └── 2.txt 2 directories, 1 file [root@localhost test_mv]# cp -r 3/2 3/4 [root@localhost test_mv]# tree . └── 3 ├── 2 │ └── 2.txt └── 4 └── 2.txt
[root@localhost test_mv]# cp -i 3/2/2.txt 3/4/2.txt cp:是否覆盖"3/4/2.txt"?
前面提到过which命令能够查看命令的绝对路径和别名,理论上当咱们使用命令时须要敲命令的绝对路径,可是咱们每每直接敲出来命令就能够直接执行,这就是环境变量在起做用,测试
[root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
能够看到,咱们使用的命令都是在上面所示的目录里面,若是咱们把ls命令移动到其余目录里,ls就不能直接运行了,而使用ls的绝对路径就能够执行。日志
[root@localhost ~]# mv /usr/bin/ls /tmp [root@localhost ~]# ls -bash: ls: 未找到命令 [root@localhost ~]# /tmp/ls anaconda-ks.cfg
如何直接运行ls呢?第一个办法就是把ls还原回去,还有就是讲/tmp这个目录加入到环境变量中code
[root@localhost ~]# PATH=$PATH:/tmp [root@localhost ~]# ls anaconda-ks.cfg
这是临时的改变环境变量,当咱们从新打开一个终端时发现ls又不能生效了ast
Last login: Thu Jun 7 23:27:22 2018 from 192.168.254.1 [root@localhost ~]# ls -bash: ls: 未找到命令
若是要它永久生效,须要更改PATH的配置文件/etc/profile,在最后新加一行PATH=$PATH:/tmp 就生效了。test
cat 、tac,more ,less ,head ,tail 这几个命令都是用来查看文件内容的。变量
tac命令跟cat命令几乎彻底同样,区别就是tac会将最后一行显示在第一行,第二行是倒数第二行.......配置
more命令查看文件时 ,当一屏幕显示不下时,它会分屏显示,看完第一屏可使用Ctrl+f 向下翻屏(空格键也能够实现),也可使用Ctrl+D向上翻屏,若是想提早退出可使用q键。
less命令跟more相似,可是功能更多,按空格键能够向下翻屏,j 键能够向下移动,k 键能够向上移动,在使用more/less时能够按下/ 或?键,并输入一串字符,就能够在文本中查找该字符了,相似于Windows中Ctrl+f ,使用/是从光标所在行向下查找,按n键查找下一个。使用?键时是从光标所在行向上查找,按n键查找更上一个。
head命令是查看文件内容的前10行,tail命令是查看文件内容的后10行,咱们也能够指定多少行 ,用法是head -n 指定前n行,tail -n 指定显示后n行。 若是文件在不断增长,可使用tail -f 命令来动态显示文件的末尾10行(通常查看日志文件一类的使用)