环境变量PATH
先介绍一个命令 which,它用于查看某个命令的所在路径命令。
echo用来输出$PATH的值。PATH前面的$是变量的前缀符号。
使用 ls2 来代表 ls
[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 ~]# lsanaconda-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又不能用了
因为/tmp自动退出了PATH的路径。 如果想永久的把/tmp加入到/PATH的路径下,
输入命令#vi /etc/profile 然后在最后一行加入PATH=$PATH:/tmp/ 然后保存退出。想ls2不生效 删除PATH环境变量下/tmp路径
给PATH重新赋值一下 执行命令: #PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
然后把vi /etc/profile的最后一行添加PATH路径删除即可。命令cp
1、命令语法:
cp [选项][来源文件][目的文件]2、命令描述:
cp是copy(即复制)的简写3、命令选项:
-r: 如果要复制一个目录,必须加-r选项,否则不能复制 -i:这是安全选项,如果遇到一个已存在的文件,会询问是否覆盖。**小知识**在用cp命令时,所有的目录全部末尾加上"/"。cp目录时,不会询问你是否覆盖,说明当目标目录已经存在的时候,它会把原目录直接放到目标目录下面去。如果目标目录不存在,它会把原目录cp过来,并改变一个名字。
以下是命令行:
[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.txt1 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.logcham ls2chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy[root@cham2 ~]# ls /tmp1.txt ks-script-JG2UJk yum.logcham ls2chamlinux 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.txt1 directory, 1 file[root@cham2 ~]# tree !$ tree /tmp/cham1//tmp/cham1/└── 2 └── 2.txt1 directory, 1 file[root@cham2 ~]# which cp 看一下 which cpalias 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.txtcham/cham1/chamlinux/.font-unix/.ICE-unix/ks-script-JG2UJkls2systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy/.Test-unix/.X11-unix/.XIM-unix/yum.log[root@cham2 ~]# tree /tmp/cham1//tmp/cham1/└── 2 └── 2.txt1 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.txt3 directories, 2 files[root@cham2 ~]# cp -r /tmp/chamlinux/ /tmp/cham1/ 因为chamlinx下面已经存在chamlinux 所以会存在是否覆盖cp:是否覆盖"/tmp/cham1/chamlinux/2/2.txt"? n
命令mv
1.命令语法:
mv[选项][源文件或目录][目标文件或目录]2.命令描述:
mv是move的简写,可以移动文件或者 重命名文件(语法为: mv [源文件名][修改后的文件名])3.命令的几种情况:
-
目标文件是目录,但该目录不存在。
-
目标文件是目录,且该目标存在。
-
目标文件是文件,且文件不存在。
-
目标文件是文件,但该文件存在。
-
当目标文件是目录时,其存在与否,执行后的结果不一样。如果该目录存在,则会把源文件或目录移动到该目录中。如果该目录不存在,则会把源文件重命名为给定的目标文件名。
-
当目标文件是文件时,其存在与否,执行后的结果也是不一样的。如果该文件存在,则会询问是否覆盖。如果该文件不存在,则会把源文件重命名为给定的目标文件名。
命令行如下:
[root@cham2 ~]# mv move ^C[root@cham2 ~]# lsanaconda-ks.cfg[root@cham2 ~]# mv anaconda-ks.cfg anaconda-ks.cfg.1 同一个目录下是改名字[root@cham2 ~]# lsanaconda-ks.cfg.1[root@cham2 ~]# cd /tmp/ 进入tmp[root@cham2 tmp]# ls 1.txt chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cycham ks-script-JG2UJk yum.logcham1 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]# lscham ks-script-JG2UJk yum.logcham1 ls2chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy[root@cham2 tmp]# mv ls2 cham/ [root@cham2 tmp]# ls cham2 ls2[root@cham2 tmp]# touch ls2 再建一个ls2 [root@cham2 tmp]# mv ls2 cham/ 如果该文件存在,则会询问是否覆盖mv:是否覆盖"cham/ls2"? n[root@cham2 tmp]# which mvalias mv='mv -i' /usr/bin/mv[root@cham2 tmp]# /usr/bin/mv ls2 cham/[root@cham2 tmp]# lscham chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cycham1 ks-script-JG2UJk yum.log[root@cham2 tmp]# ls cham/2 ls2[root@cham2 tmp]# lscham chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cycham1 ks-script-JG2UJk yum.log[root@cham2 tmp]# mv cham1/ cham/[root@cham2 tmp]# mv cham/ cham2/[root@cham2 tmp]# lscham2 ks-script-JG2UJk yum.logchamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy[root@cham2 tmp]# lscham2 ks-script-JG2UJk yum.logchamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy[root@cham2 tmp]# mv cham2/ chamlinux/[root@cham2 tmp]# ls chamlinux/2 cham2[root@cham2 tmp]# mkdir -pv cham2mkdir: 已创建目录 "cham2"[root@cham2 tmp]# lscham2 ks-script-JG2UJk yum.logchamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy[root@cham2 tmp]# touch cham2/1.txt[root@cham2 tmp]# tree cham2cham2└── 1.txt0 directories, 1 file[root@cham2 tmp]# tree chamlinuxchamlinux├── 2│ └── 2.txt└── cham2 ├── 2 │ └── 2.txt ├── cham1 │ ├── 2 │ │ └── 2.txt │ └── chamlinux │ └── 2 │ └── 2.txt └── ls27 directories, 5 files[root@cham2 tmp]# mv cham2/ chamlinux/mv:是否覆盖"chamlinux/cham2"? ymv: 无法将"cham2/" 移动至"chamlinux/cham2": 文件已存在[root@cham2 tmp]#
命令cat
1.命令语法 cat [参数] 文件名
2.命令描述 用于查看一个文件的内容并将其显示在屏幕上。(cat后面可以不加任何选项,直接跟文件名。)
3.命令参数 -n :查看文件时,把行号也显示在屏幕上。
-A :显示所有的内容,包括特殊字符。
命令tac
1.命令语法
tac 文件名2.命令描述
命令tac是命令cat的反序写法,也是把文件的内容显示在屏幕上。 只不过是先显示最后一行,然后显示倒数第二行,最后才显示第一行。小知识: #wc -l 文件名 //查看一个文件的行数
命令more
1.命令语法 more 文件名
2.命令描述
命令more也用于查看一个文件的内容,后面直接跟文件名。 当文件内容太多的时候,一屏不能全部显示时,用命令cat肯定是看不了前面的内容的,这时可以使用命令more。 当看完一屏后,按空格键可以继续看下一屏,看完所有内容后就会退出。 按Ctrl+D可以向上翻屏,按Ctrl+F可以向下翻屏(同空格)。 如果你想提前退出,按q即可。命令less
1.命令语法
less 文件名2.命令描述
命令less的作用和命令more一样,后面直接跟文件名,但命令less比more功能要多一点。 按空格键可以翻页。 按j键可以向下移动,按k键可以向上移动。 在使用more和less查看某个文件时,你可以按一下/键,并输入一个字符串(如root),然后回车,这样就可以查找这个字符串了。 如果是查找多个字符串,可以按n键显示下一个。 另外,也可以用?键代替/键来搜索字符串,唯一不同的是,/是在当前行向下搜索,而?是在当前行向上搜索。命令head
1.命令语法
head 文件名2.命令描述
命令head用于显示文件的前10行,后面直接跟文件名。3.命令参数
-n :显示文件的前几行(n代表行数,n也可以省略)命令tail
1.命令语法
tail 文件名2.命令描述
和命令head类似,命令tail用于显示文件的最后10行,后面直接跟文件名。3.命令参数
-n :显示文件的最后几行(-n后面有无空格均可,且字母n也可以省略)。 -f :它可以动态显示文件的最后10行(一般用来查看日志)。如果文件的内容在不断的增加(动态增加的内容会全部显示),使用-f选项非常方便和直观。比如tail -f /var/log/messages可以动态,实时地查看文件/var/log/messages中的内容。