20180605 Task —— 2.10-2.13

6月5日任务
2.10 环境变量PATH
2.11 cp命令
2.12 mv命令
2.13 文档查看cat/more/less/head/tail

2.10 环境变量PATH
[root@arron-01 ~]# which rm
alias rm='rm -i'
	/usr/bin/rm
[root@arron-01 ~]# which rmdir
/usr/bin/rmdir 

** 之前有提到 find 命令, 会将该目录下的文件和目录遍历一遍, 但是 which 不会, 

## 如果命令在如下环境的路径里, 那么就不需要敲绝对路径, 使用一个命令, 一般要敲绝对路径, 命令也是文件, 如果要敲命令, 要先看命令的路径, 
[root@arron-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

## 复制命令路径
[root@arron-01 ~]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[root@arron-01 ~]# cp /usr/bin/ls /tmp/ls2
## 如果想改用命令 ls2, 就要更改 ls2 的环境路径
[root@arron-01 ~]# ls
anaconda-ks.cfg
[root@arron-01 ~]# /tmp/ls2
anaconda-ks.cfg
[root@arron-01 ~]# ls2
-bash: ls2: 未找到命令
更改环境变量, 让 ls2 能直接使用
[root@arron-01 ~]# PATH=$PATH:/tmp/
[root@arron-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/
[root@arron-01 ~]# ls2
anaconda-ks.cfg
如果想在该终端的复制终端使用 ls 命令, 发觉不行; 想让一个命令在打开终端时生效, 可以在 /etc/profile 里边设置

mark

## 加一行 PATH=$PATH:/tmp/ 实现打开终端时让命令生效
[root@arron-01 ~]# vi /etc/profile

........
unset -f pathmunge
PATH=$PATH:/tmp/
在另一个复制终端里查看更改的环境变量是否生效
  1. 本终端

mark

  1. 复制终端

mark

如何取消新增的环境变量呢 ?

方法 :

## 在 /etc/profile 里边删除 PATH=$PATH:/tmp/
[root@arron-01 ~]# vi /etc/profile
[root@arron-01 ~]# less /etc/profile
.........
unset i
unset -f pathmunge

## 在当前终端下还是可以用 ls2 命令, 那是因为变量还没有完全消除
[root@arron-01 ~]# ls2
anaconda-ks.cfg
[root@arron-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/

## 将环境变量在界面下更改后, ls2 命令就不能使用了
[root@arron-01 ~]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@arron-01 ~]# ls2
-bash: ls2: 未找到命令 

##在复制的终端也没有 PATH 了
[root@arron-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
2.11 cp命令
  • 拷贝目录时, 目录后都要加上 / , !$ 是上一条命令的最后一个参数, 拷贝文件时直接 cp , 拷贝目录时要加 -r , 即 cp -r
  1. cp = copy ,
## 拷贝目录时, 目录后都要加上 / , !$ 是上一条命令的最后一个参数
[root@arron-01 ~]# tree /tmp/arronlinux/
/tmp/arronlinux/
└── 2

1 directory, 0 files
[root@arron-01 ~]# cp -r /tmp/arronlinux/ /tmp/arron
[root@arron-01 ~]# tree /tmp/arronlinux/
/tmp/arronlinux/
└── 2

1 directory, 0 files

[root@arron-01 ~]# tree /tmp/arron
/tmp/arron
└── 2

1 directory, 0 files

## 再做试验
[root@arron-01 ~]# cp -r /tmp/arronlinux/ /tmp/arron1/
[root@arron-01 ~]# tree /tmp/arron1
/tmp/arron1
└── 2

1 directory, 0 files

  1. 了解 <font color=blue size=2> cp </font> 命令
[root@arron-01 ~]# which cp
alias cp='cp -i'
	/usr/bin/cp
[root@arron-01 ~]# which rm
alias rm='rm -i'
	/usr/bin/rm

## -i 参数, 是一个交互的参数, 也可以说是一个安全参数, 如果不想让他交互, 用命令的绝对路径 == /usr/bin/cp
[root@arron-01 ~]# man cp
..........
-i, --interactive
              prompt before overwrite (overrides a previous -n option) 

## 如何让它不询问呢 ?
[root@arron-01 ~]# cp /etc/passwd /tmp/1.txt
cp:是否覆盖"/tmp/1.txt"? ^C
[root@arron-01 ~]# /usr/bin/cp /etc/passwd /tmp/1.txt

## 拷贝目录时, 当目标目录不存在时, 会会将目标目录更名; 当目标目录存在时, 会将原目录放到目标目录下边去
[root@arron-01 ~]# ls /tmp/
1.txt
arron
arron1
arronlinux
ls2
systemd-private-20f26587756742b5b8c11e6cfcec0d91-chronyd.service-ydjya2
systemd-private-20f26587756742b5b8c11e6cfcec0d91-vgauthd.service-ejHJei
systemd-private-20f26587756742b5b8c11e6cfcec0d91-vmtoolsd.service-z50eBN
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-chronyd.service-TYLrFf
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-vgauthd.service-tiTQV7
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-vmtoolsd.service-144Gp0
systemd-private-5ee241633daf42138ecd9a9d102f753a-chronyd.service-MPNBkm
systemd-private-5ee241633daf42138ecd9a9d102f753a-vgauthd.service-8rGyNW
systemd-private-5ee241633daf42138ecd9a9d102f753a-vmtoolsd.service-4KFzpE
[root@arron-01 ~]# cp -r /tmp/arronlinux/ /tmp/arron2
[root@arron-01 ~]# ls /tmp/
1.txt
arron
arron1
arron2
arronlinux
ls2
systemd-private-20f26587756742b5b8c11e6cfcec0d91-chronyd.service-ydjya2
systemd-private-20f26587756742b5b8c11e6cfcec0d91-vgauthd.service-ejHJei
systemd-private-20f26587756742b5b8c11e6cfcec0d91-vmtoolsd.service-z50eBN
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-chronyd.service-TYLrFf
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-vgauthd.service-tiTQV7
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-vmtoolsd.service-144Gp0
systemd-private-5ee241633daf42138ecd9a9d102f753a-chronyd.service-MPNBkm
systemd-private-5ee241633daf42138ecd9a9d102f753a-vgauthd.service-8rGyNW
systemd-private-5ee241633daf42138ecd9a9d102f753a-vmtoolsd.service-4KFzpE
[root@arron-01 ~]# tree /tmp/arron2
/tmp/arron2
└── 2

1 directory, 0 files
[root@arron-01 ~]# cp -r /tmp/arronlinux/ /tmp/arron2
[root@arron-01 ~]# tree /tmp/arron2
/tmp/arron2
├── 2
└── arronlinux
    └── 2

3 directories, 0 files
  • <font color=red size=3>视频最后有个 cp -r /tmp/arronlinux/ /tmp/arron2/ 时会出现交互, 但是我的没有</font>

mark

2.12 mv命令
  1. 同一个目录下, mv 命令时会更改文件名; 也可以把一个文件放到另一个目录或者分区下,
[root@arron-01 ~]# mv /tmp/1.txt /tmp/2.txt
[root@arron-01 ~]# ls /tmp/arron/
2
[root@arron-01 ~]# mv /tmp/ls2 /tmp/arron/
[root@arron-01 ~]# ls /tmp/arron/
2  ls2

## 如果目标文件跟源文件一样, 会交互; 不想交互, 跟 cp 命令一样用绝对路径
[root@arron-01 ~]# mv /tmp/ls2 /tmp/arron
mv:是否覆盖"/tmp/arron/ls2"? n
[root@arron-01 ~]# which mv
alias mv='mv -i'
	/usr/bin/mv
[root@arron-01 ~]# /usr/bin/mv /tmp/ls2 /tmp/arron
  1. mv 时, 如果目标目录存在, 会将源目录放到目标目录下, 如果目标目录不存在, 会将源目录改名
[root@arron-01 tmp]# mv arron/ arron2/
[root@arron-01 tmp]# ls
2.txt
arron1
arron2
arronlinux
systemd-private-20f26587756742b5b8c11e6cfcec0d91-chronyd.service-ydjya2
systemd-private-20f26587756742b5b8c11e6cfcec0d91-vgauthd.service-ejHJei
systemd-private-20f26587756742b5b8c11e6cfcec0d91-vmtoolsd.service-z50eBN
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-chronyd.service-TYLrFf
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-vgauthd.service-tiTQV7
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-vmtoolsd.service-144Gp0
systemd-private-5ee241633daf42138ecd9a9d102f753a-chronyd.service-MPNBkm
systemd-private-5ee241633daf42138ecd9a9d102f753a-vgauthd.service-8rGyNW
systemd-private-5ee241633daf42138ecd9a9d102f753a-vmtoolsd.service-4KFzpE
[root@arron-01 tmp]# ls arron2/
2  2.txt  arron  arronlinux 

[root@arron-01 tmp]# mv arron1/ arron3/
[root@arron-01 tmp]# ls
2.txt
arron2
arron3
arronlinux
systemd-private-20f26587756742b5b8c11e6cfcec0d91-chronyd.service-ydjya2
systemd-private-20f26587756742b5b8c11e6cfcec0d91-vgauthd.service-ejHJei
systemd-private-20f26587756742b5b8c11e6cfcec0d91-vmtoolsd.service-z50eBN
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-chronyd.service-TYLrFf
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-vgauthd.service-tiTQV7
systemd-private-20fce72d2c7e4eccaeebdf9a071d59ce-vmtoolsd.service-144Gp0
systemd-private-5ee241633daf42138ecd9a9d102f753a-chronyd.service-MPNBkm
systemd-private-5ee241633daf42138ecd9a9d102f753a-vgauthd.service-8rGyNW
systemd-private-5ee241633daf42138ecd9a9d102f753a-vmtoolsd.service-4KFzpE

## 如果目标目录与原目录一样时, 会询问
[root@arron-01 tmp]# ls arron2/
2  2.txt  arron  arronlinux
[root@arron-01 tmp]# tree arronlinux/
arronlinux/
└── 2
    └── 2.txt

1 directory, 1 file
[root@arron-01 tmp]# mv arronlinux/ arron2/
mv:是否覆盖"arron2/arronlinux"?
2.13 文档查看cat/more/less/head/tail
几个和文本文档相关的命令, 
  1. cat 和 tac 用法一样, 不过 tac 是倒序查看
## cat -A 的结尾比 cat 输出时多 $ 符号
[root@arron-01 tmp]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
....

[root@arron-01 tmp]# cat -A /etc/passwd
root:x:0:0:root:/root:/bin/bash$
bin:x:1:1:bin:/bin:/sbin/nologin$

## cat -n 会输出每行的行号
[root@arron-01 tmp]# cat -n /etc/passwd
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
.....

  1. wc -l filename 查看一个文件的行数
[root@arron-01 ~]# wc -l anaconda-ks.cfg.bak
51 anaconda-ks.cfg.bak

## >> 追加
[root@arron-01 ~]# cat /etc/passwd >> anaconda-ks.cfg.bak
## 追加后 more 命令查看文档
  1. more 命令, 空格键一屏一屏的乡下查看, ctrl+b 一屏一瓶的向上查看, ctrl+f 一屏一屏的向下看, 有查看的百分比显示, 不支持方向键, 看完后就退出了, 不过在中途按 q 键一样可以退出
[root@arron-01 ~]# wc -l anaconda-ks.cfg.bak
177 anaconda-ks.cfg.bak
[root@arron-01 ~]# more anaconda-ks.cfg.bak 

mark

  1. less 命令, 空格键一屏一屏的乡下查看, ctrl+b 一屏一瓶的向上查看, ctrl+f 一屏一屏的向下看, 支持上下方向键查看文档, 没有查看的百分比显示, 且按字母<font color=blue size=3 > q </font> 键退出, 不占屏显, ** / 是向后看, /character 就会高亮显示文档中的 character, n 键向下高亮显示所选字符, shift+n(N 键) 向上高亮显示所选字符; ? 是向前看, ?character 按键 n 的功能也会反过来.**, G 翻到文档的篇首, gg 翻到文档的篇首; 相对来说, less 会更好用一些, ctrl+u 从命令行尾部清到头部, ctrl+k 从命令行头部清到尾部
[root@arron-01 ~]# less anaconda-ks.cfg.bak 
  1. head, tail 分别查看文档的前十行和后十行,
## head -n number 从文档的头部开始查看, number >= 1, <=10
[root@arron-01 ~]# head -n 5 anaconda-ks.cfg.bak
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom

## tail -n number 从文档的尾部开始查看, number >= 1, <=10
[root@arron-01 ~]# tail -n 3 anaconda-ks.cfg.bak
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
arron:x:1000:1000::/home/arron:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash

  1. tail -f 动态显示文档内容的最后十行
[root@arron-01 ~]# tail -f anaconda-ks.cfg.bak
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
arron:x:1000:1000::/home/arron:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin


## 给文档追加几行, 显示如下
[root@arron-01 ~]# head -n 2 /etc/passwd >> anaconda-ks.cfg.bak
[root@arron-01 ~]# tail -n 2 /etc/passwd >> anaconda-ks.cfg.bak

[root@arron-01 ~]# tail -f anaconda-ks.cfg.bak
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
arron:x:1000:1000::/home/arron:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
arron:x:1000:1000::/home/arron:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash

转载于:https://my.oschina.net/u/3869385/blog/1826566

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值