美文网首页程序猿阵线联盟-汇总各类技术干货Linux我用 Linux
环境变量PATH、cp命令、mv命令、cat、more、less

环境变量PATH、cp命令、mv命令、cat、more、less

作者: 强出头 | 来源:发表于2017-12-20 22:37 被阅读0次

    210 环境变量PATH

    环境变量作用

    所有的命令其实使用时应该使用它的绝对路径,例如

    [root@mylinux ~]# which ls
    alias ls='ls --color=auto'
        /usr/bin/ls
    

    这里的ls命令应该是使用 /usr/bin/ls,但是我们能直接使用命令,就是因为添加了环境变量
    我们看到下面打印出来的环境变量

    [root@mylinux ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin (这里就是我们存放的环境变量)
    

    暂时改变环境变量

    只有当我们的命令在环境变量里面就能让系统找到该命令,下面我们演示一下

    [root@mylinux ~]# ls
    anaconda-ks.cfg  frp_0.11.0_linux_amd64
    [root@mylinux ~]# cp /usr/bin/ls  /root/ls2 (复制ls并且改名为ls2到当然root家目录下面来)
    [root@mylinux ~]# ls
    anaconda-ks.cfg  frp_0.11.0_linux_amd64  ls2 (已经有ls2了)
    [root@mylinux ~]# ls2 
    -bash: ls2: 未找到命令 (我们直接使用发现ls2并不能生效)
    [root@mylinux ~]# /root/ls2 (必须使用绝对路径才能生效)
    anaconda-ks.cfg  frp_0.11.0_linux_amd64  ls2
    [root@mylinux ~]# PATH=$PATH:/root/ (我们把ls2所在绝对路径目录加入到环境变量中)
    [root@mylinux ~]# echo $PATH (打印环境变量)
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/ (发现最后出现了:/root/)
    [root@mylinux ~]# ls2 (再来直接使用ls2就生效了)
    anaconda-ks.cfg  frp_0.11.0_linux_amd64  ls2
    

    永久改变环境变量

    上述的方法并不能实现对环境变量的永久改变,我们看下图我重新连接了一个客户端之后ls2就已经不生效了

    环境变量没有永久改变
    [root@mylinux ~]# vi /etc/profile (更改每次终端连接都会加载的文件)
    并在文件最后加上PATH=$PATH:/root/并保存就可以使之永久生效
    
    最后一行加上PATH=$PATH:/root/

    重新开启终端发现已经生效

    重新开启终端发现已经生效

    需要删除的话可以直接删除文件里面的PATH=$PATH:/root/

    211 cp命令

    拷贝一个文件到某处并改名

    [root@mylinux ~]# cp /root/2/1.txt /root/3/2.txt (拷贝1.txt到3文件夹下面并且改名为2.txt)
    [root@mylinux ~]# ls /root/3/
    2.txt
    

    拷贝一个文件到某处并覆盖里面的某一个文件

    [root@mylinux ~]# cp /root/2/1.txt /root/3/2.txt 
    cp:是否覆盖"/root/3/2.txt"? y
    [root@mylinux ~]# ls /root/3
    2.txt
    

    拷贝目录到某处

    [root@mylinux ~]# cp -r /root/2/   /root/3/ (建议所有目录结尾的路径都加上/)
    [root@mylinux ~]# tree /root/3/
    /root/3
    ├── 2
    │   └── 1.txt
    └── 2.txt
    
    1 directory, 2 files
    也可以
    [root@mylinux ~]# tree !$ (!$表示上一条命令里面的最后一个参数)
    tree /root/3
    /root/3
    ├── 2
    │   └── 1.txt
    └── 2.txt
    
    1 directory, 2 files
    
    [root@mylinux ~]# which cp
    alias cp='cp -i'                     (我们发现cp是cp -i的别名,这里面的-i表示询问是一个安全参数,即上面我们看到的是否覆盖就是因为这个参数)
        /usr/bin/cp
    
    [root@mylinux ~]# which rm 
    alias rm='rm -i'                      (rm 也有 -i 安全参数)
        /usr/bin/rm
    
    [root@mylinux ~]# ls
    2  3  anaconda-ks.cfg  frp_0.11.0_linux_amd64  
    [root@mylinux ~]# cp -r ./2/  ./3/(拷贝目录如果目标目录下有该目录了就会询问是否覆盖)
    cp:是否覆盖"./3/2/1.txt"? n
    [root@mylinux ~]# cp -r ./3/  ./2/  (如果没有就不会询问)
    [root@mylinux ~]# ls
    2  3  anaconda-ks.cfg  frp_0.11.0_linux_amd64
    [root@mylinux ~]# ls ./2/
    1.txt  3
    

    212 mv命令

    修改文件名字

    [root@mylinux ~]# ls
    2  3  anaconda-ks.cfg  frp_0.11.0_linux_amd64
    [root@mylinux ~]# mv ./2/ ./4/   (修改目录名称)
    [root@mylinux ~]# ls
    3  4  anaconda-ks.cfg  frp_0.11.0_linux_amd64
    [root@mylinux ~]# touch 1.txt
    [root@mylinux ~]# mv ./1.txt  ./2.txt (修改文件名称)
    [root@mylinux ~]# ls
    2.txt  3  4  anaconda-ks.cfg  frp_0.11.0_linux_amd64
    

    移动文件(或目录)并且更改名字或者只移动文件(文件或目录)

    [root@mylinux ~]# ls
    2.txt  3  4  anaconda-ks.cfg  frp_0.11.0_linux_amd64
    [root@mylinux ~]# mv 2.txt  ./3/    (只更移动文件)
    [root@mylinux ~]# ls ./3/
    2.txt
    [root@mylinux ~]# ls
    3  4  anaconda-ks.cfg  frp_0.11.0_linux_amd64
    [root@mylinux ~]# mv ./3/2.txt ./5.txt
    [root@mylinux ~]# ls
    3  4  5.txt  anaconda-ks.cfg  frp_0.11.0_linux_amd64
    

    移动时如果文件或者文件夹重名会询问是否覆盖,目标目录如果不存在相当于改名字

    213 文档查看cat_more_less_head_tail命令

    cat命令

    cat顺序查看文件
    tac倒序查看文件

    cat和tac
    [root@mylinux ~]# cat -A 5.txt   ($行位符号)
    1$
    2$
    $
    [root@mylinux ~]# cat -n 5.txt (显示行号)
         1  1
         2  2
         3  
    [root@mylinux ~]# 
    

    more命令

    查看文件,按屏幕分页,并显示当前所看百分比。(按空格键向下翻页,Ctrl + B 可以回翻)

    分屏查看文件
    [root@mylinux ~]# wc -l anaconda-ks.cfg  (查看文件内容行数)
    51 anaconda-ks.cfg
    
    

    >>符号

    通过 >> 符号可以使前面的文件内容追加到后面的文件里面去(这里是从最后写入进去)

    [root@mylinux ~]# cat 1.txt 
    a b c
    
    [root@mylinux ~]# cat 5.txt 
    1 2 3 4
    
    [root@mylinux ~]# cat 1.txt >> 5.txt 
    [root@mylinux ~]# cat 5.txt 
    1 2 3 4
    
    a b c
    

    less命令

    [root@mylinux ~]# less anaconda-ks.cfg (和more差不多,但是支持方向键一行一行的向下翻看和向上回看,也支持空格翻页,Ctrl + B 回翻,到最后需要按q键退出)
    

    在lees中还有搜索功能,可以输入/然后后面跟上字符串搜索字符串,搜索出来的字符串高亮显示,这是可以按n查看下一个,Shift + n 可以查看上一个。
    输入/然后后面跟上字符串搜索字符串,搜索出来的字符串高亮显示,这是可以按n查看上一个,Shift + n 可以查看下一个。

    Shift + g定位到末尾,g定位到文首

    head命令

    查看文件内容的头十行

    [root@mylinux ~]# head -n 2 anaconda-ks.cfg (查看头两行)
    
    [root@mylinux ~]# head anaconda-ks.cfg 
    #version=DEVEL
    # System authorization information
    auth --enableshadow --passalgo=sha512
    # Use CDROM installation media
    cdrom
    # Use graphical install
    graphical
    # Run the Setup Agent on first boot
    firstboot --enable
    ignoredisk --only-use=sda
    

    tail命令

    查看文件内容的末尾十行

    [root@mylinux ~]# tail -f anaconda-ks.cfg  (查看动态文件)
    
    [root@mylinux ~]# tail anaconda-ks.cfg 
    
    %addon com_redhat_kdump --enable --reserve-mb='auto'
    
    %end
    
    %anaconda
    pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
    pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    %end
    

    相关文章

      网友评论

        本文标题:环境变量PATH、cp命令、mv命令、cat、more、less

        本文链接:https://www.haomeiwen.com/subject/simgwxtx.html