PATH,CP,MV,CAT,MORE,LESS命令学习

[toc]linux

PATH,CP,MV,CAT,MORE,LESS命令学习

1、 环境变量

环境变量PATH, 不用绝对路径便可执行的命令,这些命令所在的目录就是环境变量,用echo $PATHc查看

[root@xavi-001 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • 查看命令所在的路径,绝对路径,以及别名,用“which 命令”
[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又失效了,是由于你没有修改到系统文件中,系统里有这样的文件,在每次开机是都会加载

mark

这个环境变量只是在当前终端存在,不能永久存在;如今须要配置一个文件profile;

在/etc/profile下编辑一段指令bash

vi /etc/profile,进入按大“G"进入到最后一行,再按"A"让光标到最后一个字符末尾,回车;

[root@xavi-001 ~]# vi /etc/profile

mark

  • 输入cat命令查看是否已经修改在里面保存成功
[root@xavi-001 ~]# cat /etc/profile  //输入该命令查看是否已经修改在里面保存成功,

再复制一个ssh通道,输入:echo $PATH,/tmp/已经保存在PATH之下。

mark

[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: 未找到命令...

mark

mark

--勘误:上图复制SSH Channel时,未正当操做,只点了复制,因此是错误示例。 ==问下老师区别复制和复制ssh Channel==less

  • 完全删除的办法是,用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删除,在以后的课程里面解释说明ssh

2、 cp命令

cp copy 拷贝文件或目录,下面拷贝文件,cp /源文件或目录 /目标文件或目录

[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,且被拷贝源后要加斜杠

cp -r /原目录路径/ /目标存储目/(可自定义重命名)

[root@xavi-001 ~]# cp -r /tmp/xavilinux/ /tmp/xavi

mark

mark

[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

3、 mv命令

mv 若是原文件和目标文件都是在同一个目录,就是重命名

mv 若是目标的文件已存在,就问是否覆盖!

mv 若是目标的目录已存在,就会把原目录放在目标目录下

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
  • 同理,若是不须要询问,能够直接输入该命令的所在目录

mark

  • 上图中xavi1已经放入在xavi目录下

mark

mark

[root@xavi-001 tmp]# mv xavi2/ xavilinux/
mv:是否覆盖"xavilinux/xavi2"? y
mv: 没法将"xavi2/" 移动至"xavilinux/xavi2": 文件已存在

4、 文档查看cat_more_less_head_tail

[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$

cat -n 查看文件内,首字符显示行号

more只显示一屏,剩余的不显示,按下空格显示剩余,按下ctrl+b,back看以前的

mark

wc -l 1.txt 查看文件内容的总行数

less,输入命令,按上下光标键能够查看,按ctrl+B,ctrl+F,向前前后看,按Q退出,

  • 在less里面输入/字符串,能够按N查找相应只付出,N往下看,shift+N,能够向前查看 [root@xavi-001 tmp]# less /etc/passwd

mark

less里面用“?字符串”

mark

mark

  • 从前(上)日后(下)搜索关键词:/跟关键词 (搜索到的关键词会高亮显示) 向后(向下)查看高亮的关键词:n键 向前(向上)查看高亮的关键词:Shift+n
  • 从后(下)往前(上)搜索关键词:?跟关键词 (搜索到的关键词会高亮显示) 向前(向上)查看高亮的关键词:n键 向后(向下)查看高亮的关键词:Shift+n
  • 定位到首行:g 定位到末行:Shift+g

head指令

[root@xavi-001 tmp]# head /etc/passwd

head -n :指定查看文件内容前2行

[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也有此功能。

相关文章
相关标签/搜索