一. 环境变量PATH
1. 当使用命令的时候,会在下面这些目录里面去寻找,以":"进行分隔
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
2. 可以手动将一个目录添加到PATH里面,这样该目录下的命令就可以直接使用
[root@localhost ~]# cp /usr/bin/ls /tmp/ls2 #将/usr/bin/ls 拷贝到/tmp/目录下,并命名为ls2
[root@localhost ~]# /tmp/ls2 #使用路径这个命令可以生效
anaconda-ks.cfg
[root@localhost ~]# ls2 #直接使用ls2无法找到命令
-bash: ls2: 未找到命令
[root@localhost ~]# PATH=$PATH:/tmp/ #将tmp这个目录添加到PATH里面去
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/ #可以看到tmp已经在环境变量里面
[root@localhost ~]# ls2 #这时就可以直接使用ls2
anaconda-ks.cfg
3. 手动添加目录到环境变量时只会临时生效,重新打开另外一个终端就会失效,可以手动添加到配置文件里,永久生效
[root@localhost ~]# vi /etc/profile #编辑配置文件
PATH=$PATH:/tmp/ #将这一行添加到配置文件里
4. 取消手动添加的环境变量,
将PATH重新赋值即可,或者在配置文件里将添加的路径删除。
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/
[root@localhost ~]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/ #将PATH重新赋值即可
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/ #tmp这个目录已经没有
二. cp命令
1. cp copy,拷贝的意思
[root@localhost ~]# cp /tmp/test/11.txt /tmp/33.txt 将
/tmp/test/目录下的11.txt拷贝到/tmp/目录下,并命名为33.txt
2. cp -r 拷贝目录,拷贝目录的时候要加上"/"
[root@localhost ~]# cp /tmp/test/ /root/qw/ #cp不加-r无法拷贝目录
cp: 略过目录"/tmp/test/"
[root@localhost ~]# cp -r /tmp/test/ /root/qw/ #加上-r可以正常拷贝目录,且目录要加上"/"
3. cp -i cp这个命令是个别名,实际为cp -i ,-i是个安全选项,当拷贝重复的文件时会进行询问是否覆盖
[root@localhost ~]# which cp
alias cp='cp -i'
/usr/bin/cp
[root@localhost ~]# cp -r /tmp/test/ /tmp/test2/ #目标地址有一个重复的文件,会提示。
cp:是否覆盖"/tmp/test2/test/11.txt"?
4. 当拷贝目录的时候,如果目标目录有重复的目录,那么会将拷贝的目录放到目标目录的下面
[root@localhost ~]# ls /tmp/ #tmp目录下有一个目录test2
33.txt ls2 test test2
[root@localhost ~]# ls /tmp/test2/ #test2目录下没有test目录
11.txt 2
[root@localhost ~]# cp -r /tmp/test/ /tmp/test2 #拷贝/test/这个目录到/tmp/下
[root@localhost ~]# ls /tmp/test2/ #但是因为/tmp/目录下存在test2这个目录,直接将/test/放到了/test2/目录下
11.txt 2 test
5. !$ 表示上一条命令的最后一个参数,
[root@localhost ~]# cp -r /tmp/test/ /tmp/test2/
[root@localhost ~]# tree !$ #!$表示上一条命令的最后一个参数,这里的意思是tree /tmp/test2/
tree /tmp/test2/
/tmp/test2/
├── 11.txt
└── 2
三. mv命令
1. mv 在同一个目录里就是改文件的名字
[root@localhost tmp]# ls #/tmp/下有一个33.txt
33.txt ls2 test test2
[root@localhost tmp]# mv 33.txt 66.txt #移动33.txt >> 66.txt
[root@localhost tmp]# ls #33.txt已经更名为66.txt
66.txt ls2 test test
2. mv一个文件到目标目录下时,如果目标目录有一个相同名字的文件,那么会提示是否覆盖
[root@localhost tmp]# mv ls2 test/
[root@localhost tmp]# touch ls2
[root@localhost tmp]# mv ls2 test/
mv:是否覆盖"test/ls2"?
[root@localhost tmp]# which mv #mv 也有 -i的参数
alias mv='mv -i'
/usr/bin/mv
3. mv一个目录到另外一个目录下时,如果目标目录不存在,那么相当于改名字
如果目标目录存在,那么会把原目录放到目标目录的里面。
4. mv一个目录到另外一个目录时,如果目录下有同样名字的目录,那么会提示覆盖
[root@localhost tmp]# tree test
test
├── 33 #/test/下有一个/33/目录
└── ls2
[root@localhost tmp]# tree 33
33
├── 11.txt
└── 33
[root@localhost tmp]# mv 33/ test/ # 移动/33/ 到/test/下
mv:是否覆盖"test/33"?
四.
文档查看cat_more_less_head_tail
1.
cat 正序查看一个文本文档的内容
[root@localhost tmp]# cat ss.txt
qwert
yuiop
asdfg
hjkl;
zxcv
bnmlk
2.
tac 和cat相反,倒序查看一个文件的内容
[root@localhost tmp]# tac ss.txt
bnmlk
zxcv
hjkl;
asdfg
yuiop
qwer
3.
cat -A 查看文件的所有内容,隐藏的字符显示出来
[root@localhost tmp]# cat -A ss.txt $表示结束符,换行
qwert$
yuiop$
asdfg$
hjkl;$
zxcv$
bnmlk$
4.
cat -n 查看一个文件的内容,并显示行号
[root@localhost tmp]# cat -n ss.txt
1 qwert
2 yuiop
3 asdfg
4 hjkl;
5 zxcv
6 bnmlk
5.
more
一屏一屏的显示文件内容,空格键往下翻,ctrl b 往上翻,看完只会就结束
6.
less
一屏一屏的显示文件内容,支持方向键翻页,
或者
ctrl b 往上翻,
ctrl f 往下翻,
空格键也可以往下翻,看完之后按q键退出。
在看的过程中可以使用搜索:
按"/"后输入搜索的内容回车,高亮显示搜索的字符串,按住n键往下查看,按shift n往上看。
按"?"后输入搜索的内容回车,不过是从后往前搜索,
按shift g 直接到行尾,按g到行首
7.
head
查看一个文件的头十行
head -n 接数字,指定显示的行数
8.
tail
查看一个文件的后十行
tail -n
接数字,
指定显示的行数
tail -f 动态显示文件的内容,看日志的时候可以用到
9. >>(追加重定向)和 wc -l(显示文件的行数)
[root@localhost tmp]# cat /etc/passwd >> 66.txt >>表示追加重定向,cat passdwd的内容后,追加到66.txt
[root@localhost tmp]# wc -l 66.txt wc -l 显示文件的行号
19 66.txt