二周第二次课(3月27日)

时间:2022-11-30 14:07:16

2.10 环境变量PATH

echo $PATH:查看PATH配置路径

  • 在PATH里路径的命令不需要输入绝对路径
  • PATH=$PATH:/tmp/:在PATH添加目录(临时性的)
  • 永久性修改PATH:
    # vi /etc/profile
    ......
    # 在编辑文件的最后加上
    PATH=$PATH:/tmp/   # 这个可以永久性修改PATH

2.11 cp命令

cp == copy。拷贝目录或文件

  • cp一个目录时,如果目标目录已经存在,源目录会放到目标目录下面。tree需要手动安装。
# 原始目录结构
# tree /tmp
/tmp
├── aaa
│   ├── 1.txt
│   └── 2.txt
└── bbb
    ├── 1.txt
    └── 3.txt
    
# 执行cp拷贝文件,把/tmp/aaa/1.txt文件拷贝到/tmp/bbb/目录下。如果重名则询问是否覆盖
# cp /tmp/aaa/1.txt /tmp/bbb
cp:是否覆盖"/tmp/bbb/1.txt"? y

# 把/tmp/aaa/2.txt文件拷贝到/tmp/bbb/目录下
# cp /tmp/aaa/2.txt /tmp/bbb
# tree /tmp/  # 查看目录结构
/tmp/
├── aaa
│   ├── 1.txt
│   └── 2.txt
└── bbb
    ├── 1.txt
    ├── 2.txt
    └── 3.txt
# 把/tmp/下的aaa目录及里面的所有文件和子目录都拷贝到/tmp/bbb/里面。如果有重名文件会提示。有重名目录直接略过不提示
# cp -r /tmp/aaa/ /tmp/bbb/   # 养成习惯,目录都要加/# tree /tmp/
/tmp/
├── aaa
│   ├── 1.txt
│   └── 2.txt
└── bbb
    ├── 1.txt
    ├── 3.txt
    └── aaa
        ├── 1.txt
        └── 2.txt

xxx !$:!$获取上一条命令的最后一条参数。比如:

# ls /etc/networks 
/etc/networks
# cat !$
cat /etc/networks
default 0.0.0.0
loopback 127.0.0.0
link-local 169.254.0.0

2.12 mv命令

mv = move。移动目录或文件

  • mv一个目录时,如果目标目录已经存在,源目录会放到目标目录下面
# 把2.txt移动到bbb目录下。如果有重名文件会提示,如果有重名目录也会有提示。但是操作完会显示文件已存在
# mv /tmp/aaa/2.txt /tmp/bbb/ 
# tree /tmp
/tmp
├── aaa
│   └── 1.txt
└── bbb
    ├── 1.txt
    ├── 2.txt
    ├── 3.txt
    └── aaa
        ├── 1.txt
        └── 2.txt
# 把2.txt移动到aaa目录下并改名为11.txt
# mv /tmp/bbb/2.txt /tmp/aaa/11.txt
# tree /tmp
/tmp
├── aaa
│   ├── 11.txt
│   └── 1.txt
└── bbb
    ├── 1.txt
    ├── 3.txt
    └── aaa
        ├── 1.txt
        └── 2.txt
# 把aaa目录移动到到/bbb/ccc/下,但是ccc不存在,所以aaa直接改名为ccc。
# (把目标目录移动到现有目录的子目录下,如果该子目录不存在则把目标目录更名为现有目录的子目录的名字)
#不知道怎么描述。看见就理解了。
# mv /tmp/aaa/ /tmp/bbb/ccc/
# tree /tmp
/tmp
└── bbb
    ├── 1.txt
    ├── 3.txt
    ├── aaa
    │   ├── 11.txt
    │   ├── 1.txt
    │   └── 2.txt
    └── ccc

# 把aaa移动到/ddd/eee/目录下。因为/ddd/eee/都不存在。会提示错误。
# (把目标目录移动到不存在目录的子目录下,则报错。)
# 不知道怎么描述。看见就理解了
# mv /tmp/bbb/aaa/ /tmp/bbb/ccc/ddd/eee/
mv: 无法将"/tmp/bbb/aaa/" 移动至"/tmp/bbb/ccc/ddd/eee/": 没有那个文件或目录

2.13 文档查看cat/more/less/head/tail

cat:查看文件内容

  • cat -A xxx:显示每行结束符号
  • cat -n xxx:显示行号
tac:倒序查看文件内容

more xxx:看看文件内容。一页一页的显示。==空格(Ctrl+F)==下一页;Ctrl+B上一页。看完自动退出。

wc -l xxx:查看文件的行数
cat A >> B:追加、重定向。把A文件的内容追加到B文件里面。

less:和more用法一样。但它支持方向键按行查看;而且看到最有一页后不会自动退出。按q键退出。按g跳转文件首行。按跳shlft+g (G)转文件末行

  • 支持搜索功能:输入
    /xxx  #由前往后搜索内容了,按'n'键搜索下一个xxx,按'shlft+n(N)'键搜索上一个xxx。
    ?xxx  #由前往后搜索内容了,按'n'键搜索上一个xxx,按'shlft+n(N)'键搜索下一个xxx。

head xxx:查看xxx文件的前10行。

  • head -n 2 xxx:查看xxx文件的前2行
  • head -n 2 A >> B:把A文件前两行追加到B文件。

tail xxx:查看xxx文件的后10行。

  • tail -n 2 xxx:查看xxx文件的后2行。
  • tail -f xxx:查看动态文件(一直在写入的文件。比如:日志)。一直更新xxx文件。
  • tail -n 2 A >> B:把A文件末尾两行追加到B文件。