day_03

1. cd 命令——进入目录


# 绝对路径
[root@s1 ~]# cd /vagrant
[root@s1 vagrant]# ls
bootstrap.sh  centos_v1.box  centos_v2.box  centos_v3.box  lua-demo  Vagrantfile

# 进入用户的宿主目录
cd ~ 

cd .. #进入上级目录

# ./ 不写,都是代表当前目录

cd - 进入上一个历史目录

2. pwd命令——显示当前工作目录(print working directory)


[root@s1 vagrant]# cd ~
[root@s1 ~]# ls
anaconda-ks.cfg  post_install.log  v3.txt
# 输入pwd查看当前目录
[root@s1 ~]# pwd
/root

4. 使用vagrant登录

        使用vagrant安装的虚拟机默认2个用户

                1)用户名:vagrant        密码:vagrant

                2)用户名:root               密码:vagrant

Linux系统-文件或目录常用命令_java

[vagrant@s1 ~]$ pwd/home/vagrant

效果图如下:

Linux系统-文件或目录常用命令_bc_02

 4. su命令——切换用户


# su命令表示切换用户,用法: su + 空格 + 用户名
[vagrant@s1 ~]$ su 
# 普通用户切换root管理员用户时需要输入密码
Password: 
[root@s1 vagrant]# su vagrant

效果图如下:

Linux系统-文件或目录常用命令_bc_03

 5. mkdir命令——创建目录(make directoriy)

        添加 -p 命令:父目录不存在的情况下会先生成父目录 


# 查看当前所有文件信息
[root@s1 export]# ll
total 0
drwxr-xr-x 2 root root 23 Jul  6 17:12 copy
drwxr-xr-x 4 root root 64 Jul  6 10:52 servers
[root@s1 export]# mkdir pypy/ppyy
mkdir: cannot create directory ‘pypy/ppyy’: No such file or directory

# 创建pypy目录及子目录ppyy
[root@s1 export]# mkdir -p pypy/ppyy
[root@s1 export]# ll
total 0
drwxr-xr-x 2 root root 23 Jul  6 17:12 copy
drwxr-xr-x 3 root root 17 Jul  6 19:07 pypy
drwxr-xr-x 4 root root 64 Jul  6 10:52 servers

效果图如下:

Linux系统-文件或目录常用命令_子目录_04

 6. tree命令——以树结构展示


su root #切换管理员,然后下载tree脚本
yum install -y tree

[root@s1 vagrant]# su vagrant

# 使用方法:tree + 空格 + 目标目录
[vagrant@s1 ~]$ tree java-project
java-project
├── resources
│   └── db
└── src

      注:使用tree命令时,用户所在目录不能为目标目录的子目录,如果想要查看上一级目录的树结构需要写绝对路径.

效果图如下:

Linux系统-文件或目录常用命令_子目录_05

 7. touch命令——创建空文件


[vagrant@s1 src]$ touch Hello.java
[vagrant@s1 src]$ ll
total 0
-rw-rw-r-- 1 vagrant vagrant 0 Jul  6 14:01 Hello.java
[vagrant@s1 src]$

8. cp命令——拷贝命令

        cp命令可以用来拷贝文件、目录等

                添加 -v 命令表示显示其执行过程

                添加 -rf 命令表示强制复制文件或者目录,不论目的文件或者目录是否已经存在

                添加 -r 命令表示递归拷贝 , -R 则表示会将指定目录下的文件及子目录一并处理

        普通拷贝:


[vagrant@s1 ~]$ cp java-project/src/Hello.java ./java-project/src/main/java/
[vagrant@s1 ~]$ tree java-project/
java-project/
├── resources
│   └── db
└── src
    ├── Hello.java
    ├── main
    │   └── java
    │       └── Hello.java
    └── test

        递归拷贝:


[vagrant@s1 ~]$ cp -r  java-project/resources/ java-project/src/main/
[vagrant@s1 ~]$ tree java-project/
java-project/
├── resources
│   └── db
│       └── jdbc.properties
└── src
    ├── main
    │   ├── java
    │   │   └── Hello.java
    │   └── resources
    │       └── db
    │           └── jdbc.properties
    └── test

8 directories, 3 files

Linux系统-文件或目录常用命令_bc_06

 9. rm 命令——删除命令

        删除文件或者目录

                -r   递归删除

                -f    强制删除(与 -r 命令可以搭配使用)


[vagrant@s1 ~]$ tree java-project/
java-project/
└── src
    ├── main
    │?? ├── ddddd
    │?? ├── java
    │?? │?? └── Hello.java
    │?? └── resource
    │??     └── db
    │??         └── jdbc.properties
    └── test

7 directories, 2 files
[vagrant@s1 ~]$ rm -rf java-project/src/main/ddddd
[vagrant@s1 ~]$ tree java-project/
java-project/
└── src
    ├── main
    │?? ├── java
    │?? │?? └── Hello.java
    │?? └── resource
    │??     └── db
    │??         └── jdbc.properties
    └── test

6 directories, 2 files

   效果图如下:

Linux系统-文件或目录常用命令_子目录_07

 10. mv 命令——移动文件或目录(修改文件或目录名)


[vagrant@s1 ~]$ mv  java-project/resources/ java-project/src/main/
[vagrant@s1 ~]$ tree java-project/
java-project/
└── src
    ├── main
    │   ├── java
    │   │   └── Hello.java
    │   └── resources
    │       └── db
    │           └── jdbc.properties
    └── test

6 directories, 2 files

        mv修改文件或者目录名:


[vagrant@s1 ~]$ tree java-project/
java-project/
└── src
    ├── main
    │   ├── java
    │   │   └── Hello.java
    │   └── resources
    │       └── db
    │           └── jdbc.properties
    └── test

6 directories, 2 files
[vagrant@s1 ~]$ mv java-project/src/main/java/Hello.java java-project/src/main/java/HelloWorld.java
[vagrant@s1 ~]$ tree java-project/
java-project/
└── src
    ├── main
    │   ├── java
    │   │   └── HelloWorld.java
    │   └── resources
    │       └── db
    │           └── jdbc.properties
    └── test

6 directories, 2 files

11. cat 命令——查看文本文件内容(catenate)


[vagrant@s1 copy]$ cat Hello.java 
777
7888887

  效果图如下: 

Linux系统-文件或目录常用命令_子目录_08

      拓展:>  和 >> 文本内容覆盖和追加

cat a.txt > b.txt #把a.txt内容覆盖到b.txt
cat a.txt >> b.txt #吧a.txt追加到b.txt

   12. more 和 less 命令——分页显示文本文件内容

more OAuth2Config.java
less OAuth2Config.java

13. head 命令——显示前几行内容

       添加 -n 命令:显示前几行内容

# 用法:head + 空格 + -n + 要显示的行数 + 文件名
[vagrant@s1 copy]$ head -n 2 Hello.java 
777
7888887
[vagrant@s1 copy]$

Linux系统-文件或目录常用命令_bc_09

14.  tail 命令——显示后几行内容

        添加 -n 命令:显示后几行内容

        添加 -f 命令:b.log循环读取(fellow,即时读取)

[vagrant@s1 copy]$ tail -n 1 Hello.java 
7888887
[vagrant@s1 copy]$

        应用场景:

                启动两个session

                在其中一个session追加内容

echo "hello 0008877" >> Hello.java

在另一个session中,可以刷新最新的日志

tail -n 20 -f Hello.java

效果图如下:

Linux系统-文件或目录常用命令_java_10

15. wc 命令——统计文本的行数、字数、字符数(word count)

        添加 -m 命令:统计文本字节数

        添加 -w 命令:统计文本字数

        添加 -l 命令:统计文本行数

echo "hello java welcome to beijing" > a.txt
wc -w -l -m a.txt

 16. find 命令——查找文件

find -name Hello*.java

[vagrant@s1 ~]$ tree java-project/
java-project/
└── src
    ├── java -> app
    ├── main
    │   ├── java
    │   │   └── HelloWorld.java
    │   └── resources
    │       └── db
    │           └── jdbc.properties
    └── test

6 directories, 3 files
[vagrant@s1 ~]$ find -name Hello*.java
./java-project/src/main/java/HelloWorld.java
[vagrant@s1 ~]$ find -name jdbc.*
./java-project/src/main/resources/db/jdbc.propertiess

        注:符号 * 在正则表达式中是一个限定符,用来修饰前一个字符或分组,限定匹配重复的数量为任意数量。

16. find 命令——查找文件

[root@s1 ~]# find -name He*.java
./Hello.java
[root@s1 ~]# ll
total 4
-rw-------. 1 root root 1475 Jan 27  2016 anaconda-ks.cfg
lrwxrwxrwx  1 root root   23 Jul  6 17:27 Hello.java -> /export/copy/Hello.java
-rw-r--r--. 1 root root    0 Jan 27  2016 post_install.log
drwxr-xr-x  2 root root    6 Jul  4 20:53 s2
[root@s1 ~]#

Linux系统-文件或目录常用命令_java_11

17. grep 命令——查找文本

        添加 -n 显示行数

        添加 -i 不区分大小写

        等等命令...

        grep 在指定的文本文件中查找指定的字符串

grep class Hello.java -n -i -o

Linux系统-文件或目录常用命令_java_12

      18. ln 命令——创建软连接 

# 格式如下:ln -s 目标地址 目标文件名

ln -s /export/copy/ Hello2.java

        通过软链接添加内容

[root@s1 ~]# ln -s /export/copy/Hello.java app
# 通过软链接添加内容
[root@s1 ~]# echo "hello spring" >> app
# 添加后通过软链接查看文件内容
[root@s1 ~]# cat app
777
7888887
hello 0008877
hello spring

Linux系统-文件或目录常用命令_java_13

19. echo 命令——打印命令

echo hello linux

echo hello v3 > v3.txt #覆盖

echo hello v3 >> v3.txt #追加

     20. ls 命令——查看列表  

        添加 -l 命令:(long)详细列表

        添加 -a (all)命令:显示隐藏文件、特殊目录等

ls     # 查看当前目录所有文件和目录
ls -la # 详细查看,所有文件和目录

Linux系统-文件或目录常用命令_bc_14

21. man 命令——查看命令的帮助

man ls

       拓展:快捷键[ Ctrl+f:下一页、 Ctrl+b:上一页、 :q :退出、:wq :保存并退出、:q! :强制退出、 :wq! :强制保存并退出 ]