第二周第二次课(12月19日)
2.10 环境变量PATH
2.11 cp命令
2.12 mv命令
2.13 文档查看cat/more/less/head/tail
一 环境变量
- 环境变量PATH
[root@xavi-001 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@xavi-001 /]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@xavi-001 /]# ls /usr/bin/ls
/usr/bin/ls
[root@xavi-001 /]# cp /usr/bin/ls /tmp/ls2
[root@xavi-001 /]# ls
1 boot etc lib media opt root sbin sys usr
bin dev home lib64 mnt proc run srv tmp var
[root@xavi-001 /]# /tmp/ls2
1 boot etc lib media opt root sbin sys usr
bin dev home lib64 mnt proc run srv tmp var
[root@xavi-001 ~]# ls2
bash: ls2: 未找到命令...
- 上述代码中,我们先用which找到了ls的定义,其存放位置在/usr/bin/ls 下。(命令其实也是一个文件)我们可以复制一个ls命令,取名为ls2,把他放在/tmp文件下,于是我们执行/tmp/ls2效果等同于ls,但是执行ls2是不行的,因为/tmp不在PATH路径中,如何添加到环境变量中去呢,运行以下代码
[root@xavi-001 ~]# PATH=$PATH:/tmp/
[root@xavi-001 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/ //出现了/tmp/
[root@xavi-001 ~]# ls2
anaconda-ks.cfg initial-setup-ks.cfg [root@localhost
[root@xavi-001 ~]# which ls2
/tmp/ls2
- 当你重新打开新窗口,或者再次登入是,发现ls2又失效了,是因为你没有修改到系统文件中,系统里有这样的文件,在每次开机是都会加载
在/etc/profile下编辑一段指令
[root@xavi-001 ~]# vi /etc/profile
- 输入cat命令查看是否已经修改在里面保存成功
[root@xavi-001 ~]# cat /etc/profile //输入该命令查看是否已经修改在里面保存成功,
- 再复制一个ssh通道,输入:echo $PATH,/tmp/已经保存在PATH之下。
[root@xavi-001 ~]# ls2
anaconda-ks.cfg initial-setup-ks.cfg [root@localhost //ls2生效
- 如何将ls2不生效呢,输入以下命令,重新定义PATH
[root@xavi-001 ~]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[root@xavi-001 ~]# ls2
bash: ls2: 未找到命令...
--勘误:上图复制SSH Channel时,未正当操作,只点了复制,所以是错误示例。 ==问下老师区别复制和复制ssh Channel==
- 彻底删除的办法是,用vi进入vi /etc/profile,把刚才的代码PATH=$PATH:/tmp/删除即可。
[root@xavi-001 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/
或者可以用vi删除,在之后的课程里面解释说明
二 cp命令
- cp copy 拷贝文件或目录,下面拷贝文件
[root@xavi-001 ~]# touch /tmp/xavilinux/2/3/4/1.txt
[root@xavi-001 ~]# cp /etc/passwd /tmp/1.txt
cp:是否覆盖"/tmp/1.txt"? y
[root@xavi-001 ~]# tree /tmp/xavilinux
/tmp/xavilinux
└── 2
└── 3
└── 4
└── 1.txt
3 directories, 1 file
- cp -r 拷贝目录需加上r,且被拷贝源后要加斜杠
[root@xavi-001 ~]# cp -r /tmp/xavilinux/ /tmp/xavi
[root@xavi-001 ~]# tree !$
tree /tmp/xavi
/tmp/xavi
└── 2
└── 3
└── 4
└── 1.txt
3 directories, 1 file
[root@xavi-001 ~]# cp -r /tmp/xavilinux/ /tmp/xavi/
[root@xavi-001 ~]# ls /tmp/xavi
2 xavilinux //复制的目标目录里不存在xavilinux时,将其负债在目标目录之下
[root@xavi-001 ~]# cp -r /tmp/xavilinux/ /tmp/xavi/
cp:是否覆盖"/tmp/xavi/xavilinux/2/3/4/1.txt"? n
三 mv命令
[root@xavi-001 ~]# mv anaconda-ks.cfg anaconda-ks.cfg.1 //这里相当于直接改名字了
[root@xavi-001 ~]# ls
anaconda-ks.cfg.1 initial-setup-ks.cfg [root@localhost
[root@xavi-001 ~]# cd /tmp/ //切换到/tmp/目录
[root@xavi-001 tmp]# ls
1.txt
ls2
systemd-private-326256f65ea943dd8a67183d93dfe298-cups.service-AeQUKR
systemd-private-326256f65ea943dd8a67183d93dfe298-vmtoolsd.service-4S9XrS
xavi
xavi1
xavilinux
[root@xavi-001 tmp]# mv 1.txt /root/2.txt
[root@xavi-001 tmp]# mv ls2 xavi/
[root@xavi-001 tmp]# ls xavi/
2 ls2 xavilinux
[root@xavi-001 tmp]# touch ls2
[root@xavi-001 tmp]# mv ls2 xavi/
mv:是否覆盖"xavi/ls2"? n
[root@xavi-001 tmp]# which mv
alias mv='mv -i'
/usr/bin/mv
- 同理,如果不需要询问,可以直接输入该命令的所在目录
- 上图中xavi1已经放入在xavi目录下
[root@xavi-001 tmp]# mv xavi2/ xavilinux/
mv:是否覆盖"xavilinux/xavi2"? y
mv: 无法将"xavi2/" 移动至"xavilinux/xavi2": 文件已存在
四 Cat
[root@xavi-001 tmp]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
- cat -A 在行尾加了$作为结束符
[root@xavi-001 tmp]# cat -A /etc/passwd
root:x:0:0:root:/root:/bin/bash$
bin:x:1:1:bin:/bin:/sbin/nologin$
daemon:x:2:2:daemon:/sbin:/sbin/nologin$
adm:x:3:4:adm:/var/adm:/sbin/nologin$
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$
sync:x:5:0:sync:/sbin:/bin/sync$
-
more只显示一屏,剩余的不显示,按下空格显示剩余,按下ctrl+b,back看之前的
-
less,输入命令,按上下光标键可以查看,按ctrl+B,ctrl+F,向前先后看,按Q退出,
-
在less里面输入/字符串,可以按N查找相应只付出,N往下看,shift+N,可以向前查看 [root@xavi-001 tmp]# less /etc/passwd
- less里面用“?字符串”
- head指令
[root@xavi-001 tmp]# head /etc/passwd
[root@xavi-001 tmp]# head -n 2 /etc/passwd // 2 即为制定行数
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
- tail命令
[root@xavi-001 tmp]# tail /etc/passwd
[root@xavi-001 tmp]# tail -n 2 /etc/passwd
xavidsf:x:1001:1001:xavi:/home/xavidsf:/bin/bash
user1:x:1002:1002::/home/user1:/bin/bash
- tail-f 查看摸个不断在写入的日志文件,head也有此功能。