先介绍一个命令 which,它用于查看某个命令的所在路径命令。linux
echo用来输出$PATH的值。PATH前面的$是变量的前缀符号。安全
[root@cham2 ~]# ls /usr/bin/ls /usr/bin/ls [root@cham2 ~]# cp /usr/bin/ls /tmp/ls2 [root@cham2 ~]# /tmp/ls2 /tmp/ls2 和ls是同样的 anaconda-ks.cfg [root@cham2 ~]# ls anaconda-ks.cfg [root@cham2 ~]# ls2 直接ls2不行,由于ls2并无在PATH的目录里面 -bash: ls2: 未找到命令 [root@cham2 ~]# PATH=$PATH:/tmp/ 把它加上,从新赋值,加上/tmp/ [root@cham2 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/ [root@cham2 ~]# ls2 再运行ls2就能够执行了 anaconda-ks.cfg [root@cham2 ~]# which ls2 咱们看一下 /tmp/ls2
打开一个新终端LS2又不能用了bash
由于/tmp自动退出了PATH的路径。 若是想永久的把/tmp加入到/PATH的路径下,
输入命令#vi /etc/profile
而后在最后一行加入PATH=$PATH:/tmp/
而后保存退出。less
给PATH从新赋值一下 执行命令: #PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
而后把vi /etc/profile的最后一行添加PATH路径删除便可。spa
一、命令语法:
cp [选项][来源文件][目的文件]命令行
二、命令描述:
cp是copy(即复制)的简写unix
三、命令选项:
-r: 若是要复制一个目录,必须加-r选项,不然不能复制
-i:这是安全选项,若是遇到一个已存在的文件,会询问是否覆盖。日志
**小知识**在用cp命令时,全部的目录所有末尾加上"/"。cp目录时,不会询问你是否覆盖,说明当目标目录已经存在的时候,它会把原目录直接放到目标目录下面去。若是目标目录不存在,它会把原目录cp过来,并改变一个名字。code
如下是命令行:图片
[root@cham2 ~]# cp copy ^C [root@cham2 ~]# cp /etc/passwd /tmp/1.txt 拷贝文件 passwd到tmp/1.txt [root@cham2 ~]# cp -r /tmp/chamlinux/ /tmp/cham 拷贝目录与要加-r 拷贝目录须要加“/” [root@cham2 ~]# tree /tmp/chamlinux/ /tmp/chamlinux/ └── 2 └── 2.txt 1 directory, 1 file [root@cham2 ~]# ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var [root@cham2 ~]# ls /tmp/ 1.txt ks-script-JG2UJk yum.log cham ls2 chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 ~]# ls /tmp 1.txt ks-script-JG2UJk yum.log cham ls2 chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 ~]# cp -r /tmp/chamlinux/ /tmp/cham1/ chamlinux拷贝到cham1目录 [root@cham2 ~]# tree !$ *小知识*上一条命令的最后参数 tree /tmp/cham1/ /tmp/cham1/ └── 2 └── 2.txt 1 directory, 1 file [root@cham2 ~]# tree !$ tree /tmp/cham1/ /tmp/cham1/ └── 2 └── 2.txt 1 directory, 1 file [root@cham2 ~]# which cp 看一下 which cp alias cp='cp -i' /usr/bin/cp [root@cham2 ~]# which rm -i是安全选项,询问是否覆盖或者是否删除 alias rm='rm -i' /usr/bin/rm [root@cham2 ~]# cp /etc/passwd /tmp/1.txt 会询问是否覆盖 cp:是否覆盖"/tmp/1.txt"? ^C [root@cham2 ~]# /usr/bin/cp /etc/passwd /tmp/1.txt 这样才不会询问 [root@cham2 ~]# tree /tmp/ 1.txt cham/ cham1/ chamlinux/ .font-unix/ .ICE-unix/ ks-script-JG2UJk ls2 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy/ .Test-unix/ .X11-unix/ .XIM-unix/ yum.log [root@cham2 ~]# tree /tmp/cham1/ /tmp/cham1/ └── 2 └── 2.txt 1 directory, 1 file [root@cham2 ~]# cp -r /tmp/chamlinux/ /tmp/cham1/ 拷贝目录的时候不会问是否覆盖 [root@cham2 ~]# ls /tmp/cham1/ 看一下。当目标目录已经存在的时候,会把源目录放到 目标目录下面去,若是目标目录不存在的,会把源 目录拷贝过来并改个名字 2 chamlinux [root@cham2 ~]# tree /tmp/cham1/ /tmp/cham1/ ├── 2 │ └── 2.txt └── chamlinux └── 2 └── 2.txt 3 directories, 2 files [root@cham2 ~]# cp -r /tmp/chamlinux/ /tmp/cham1/ 由于chamlinx下面已经存在chamlinux 因此会存在是否覆盖 cp:是否覆盖"/tmp/cham1/chamlinux/2/2.txt"? n
1.命令语法:
mv[选项][源文件或目录][目标文件或目录]
2.命令描述:
mv是move的简写,能够移动文件或者 重命名文件(语法为: mv [源文件名][修改后的文件名])
3.命令的几种状况:
目标文件是目录,但该目录不存在。
目标文件是目录,且该目标存在。
目标文件是文件,且文件不存在。
目标文件是文件,但该文件存在。
当目标文件是目录时,其存在与否,执行后的结果不同。若是该目录存在,则会把源文件或目录移动到该目录中。若是该目录不存在,则会把源文件重命名为给定的目标文件名。
当目标文件是文件时,其存在与否,执行后的结果也是不同的。若是该文件存在,则会询问是否覆盖。若是该文件不存在,则会把源文件重命名为给定的目标文件名。
命令行以下:
[root@cham2 ~]# mv move ^C [root@cham2 ~]# ls anaconda-ks.cfg [root@cham2 ~]# mv anaconda-ks.cfg anaconda-ks.cfg.1 同一个目录下是更名字 [root@cham2 ~]# ls anaconda-ks.cfg.1 [root@cham2 ~]# cd /tmp/ 进入tmp [root@cham2 tmp]# ls 1.txt chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy cham ks-script-JG2UJk yum.log cham1 ls2 [root@cham2 tmp]# mv 1.txt /root/2.txt 移动1.txt到root/2.txt文件不存在,把源文件 重命名为给定的目标文件名 [root@cham2 tmp]# ls /root/ 看一下 2.txt anaconda-ks.cfg.1 [root@cham2 tmp]# ls cham ks-script-JG2UJk yum.log cham1 ls2 chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 tmp]# mv ls2 cham/ [root@cham2 tmp]# ls cham 2 ls2 [root@cham2 tmp]# touch ls2 再建一个ls2 [root@cham2 tmp]# mv ls2 cham/ 若是该文件存在,则会询问是否覆盖 mv:是否覆盖"cham/ls2"? n [root@cham2 tmp]# which mv alias mv='mv -i' /usr/bin/mv [root@cham2 tmp]# /usr/bin/mv ls2 cham/ [root@cham2 tmp]# ls cham chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy cham1 ks-script-JG2UJk yum.log [root@cham2 tmp]# ls cham/ 2 ls2 [root@cham2 tmp]# ls cham chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy cham1 ks-script-JG2UJk yum.log [root@cham2 tmp]# mv cham1/ cham/ [root@cham2 tmp]# mv cham/ cham2/ [root@cham2 tmp]# ls cham2 ks-script-JG2UJk yum.log chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 tmp]# ls cham2 ks-script-JG2UJk yum.log chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 tmp]# mv cham2/ chamlinux/ [root@cham2 tmp]# ls chamlinux/ 2 cham2 [root@cham2 tmp]# mkdir -pv cham2 mkdir: 已建立目录 "cham2" [root@cham2 tmp]# ls cham2 ks-script-JG2UJk yum.log chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 tmp]# touch cham2/1.txt [root@cham2 tmp]# tree cham2 cham2 └── 1.txt 0 directories, 1 file [root@cham2 tmp]# tree chamlinux chamlinux ├── 2 │ └── 2.txt └── cham2 ├── 2 │ └── 2.txt ├── cham1 │ ├── 2 │ │ └── 2.txt │ └── chamlinux │ └── 2 │ └── 2.txt └── ls2 7 directories, 5 files [root@cham2 tmp]# mv cham2/ chamlinux/ mv:是否覆盖"chamlinux/cham2"? y mv: 没法将"cham2/" 移动至"chamlinux/cham2": 文件已存在 [root@cham2 tmp]#
1.命令语法 cat [参数] 文件名
2.命令描述 用于查看一个文件的内容并将其显示在屏幕上。(cat后面能够不加任何选项,直接跟文件名。)
3.命令参数 -n :查看文件时,把行号也显示在屏幕上。
-A :显示全部的内容,包括特殊字符。
1.命令语法
tac 文件名
2.命令描述
命令tac是命令cat的反序写法,也是把文件的内容显示在屏幕上。
只不过是先显示最后一行,而后显示倒数第二行,最后才显示第一行。
小知识: #wc -l 文件名 //查看一个文件的行数
1.命令语法 more 文件名
2.命令描述
命令more也用于查看一个文件的内容,后面直接跟文件名。
当文件内容太多的时候,一屏不能所有显示时,用命令cat确定是看不了前面的内容的,这时可使用命令more。
当看完一屏后,按空格键能够继续看下一屏,看完全部内容后就会退出。
按Ctrl+D能够向上翻屏,按Ctrl+F能够向下翻屏(同空格)。
若是你想提早退出,按q便可。
1.命令语法
less 文件名
2.命令描述
命令less的做用和命令more同样,后面直接跟文件名,但命令less比more功能要多一点。
按空格键能够翻页。
按j键能够向下移动,按k键能够向上移动。
在使用more和less查看某个文件时,你能够按一下/键,并输入一个字符串(如root),而后回车,这样就能够查找这个字符串了。
若是是查找多个字符串,能够按n键显示下一个。
另外,也能够用?键代替/键来搜索字符串,惟一不一样的是,/是在当前行向下搜索,而?是在当前行向上搜索。
1.命令语法
head 文件名
2.命令描述
命令head用于显示文件的前10行,后面直接跟文件名。
3.命令参数
-n :显示文件的前几行(n表明行数,n也能够省略)
1.命令语法
tail 文件名
2.命令描述
和命令head相似,命令tail用于显示文件的最后10行,后面直接跟文件名。
3.命令参数
-n :显示文件的最后几行(-n后面有无空格都可,且字母n也能够省略)。
-f :它能够动态显示文件的最后10行(通常用来查看日志)。若是文件的内容在不断的增长(动态增长的内容会所有显示),使用-f选项很是方便和直观。好比tail -f /var/log/messages能够动态,实时地查看文件/var/log/messages中的内容。