1 开胃
在讨论文件以及目录命令之前,先需要了解文件的一些基本属性。
在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组
[root@root /]# ll
total 68
-rw-r--r-- 1 root root 0 Jul 7 17:13 9000
lrwxrwxrwx. 1 root root 7 Apr 26 2020 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Apr 26 2020 boot
lrwxrwxrwx. 1 root root 8 Apr 26 2020 sbin -> usr/sbin
drwxr-xr-x 6 root root 4096 Jul 3 23:18 www
其中第一个位置表示文件类型
,当
- 为 d 则表示是目录。
- 为 - 则表示是文件。
- 是 l 则表示是链接文档(link file);
- 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的9字符,分别以三个
为一组,且均为 rwx 的三个参数的组合,表示文件的权限。其中,前三个字符为属主权限,中间三个字符为属组权限,最后三个字符为其他用户权限, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 代替。
例如:drwxr-xr-x 6 root root 4096 Jul 3 23:18 www
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
---|---|---|---|
0 | 123 | 456 | 789 |
d | r w x | r - x | r - x |
目录文件 | 读 写 执行 | 读 写 | 读 写 |
代表字符 | 权限 | 对文件的含义 | 对目录的含义 | 分数 |
---|---|---|---|---|
r | 读权限 | 可以查看文件 | 可以列出目录的内容 | 4 |
w | 写权限 | 可以修改文件 | 可以在目录中创建、删除文件 | 2 |
x | 执行权限 | 可以执行文件 | 可以进入目录 | 1 |
6:
代表的意思是文件别引用了几次,通常设置有一个计数器.
root:
代表文件的创建者
root:
文件所属的组。
4096:
文件大小。
Jul 3 23:18:
文件创建或者左后一次修改的时间。
www:
文件的名字。
2 文件目录命令
2.1、 cd:切换目录
语法:
cd [参数] [切换的目录]
cd ~ 回到根目录
cd . 当前目录
cd … 返回上一级目录
其中:参数主要有两种,一种是相对路径
,一种是绝对路径。
绝对路径:
使用起来比较麻烦,文件的路径必须的很清楚,否则会找不到,相对来说写起来比较臃肿麻烦.
相对路径:
使用起来比较方便,经常使用。
案例:
1.进入根目录(\)。
[root@root ~]# cd /
[root@root /]#
2.返回上一级目录。
[root@root home]# cd ..
[root@root /]#
2.2、 ls:显示目录以及文件名
语法:
ls [选项] [参数] [文件名或目录]
其中: [文件名或目录]是指指定目录(文件)下的子目录(子文件)
选项与参数:
- -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
- -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
- -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
- -r 将文件以相反次序显示(原定依英文字母次序)
- -t 将文件依建立时间之先后次序列出
案例:
1.显示当前目录下的所有目录。
[root@root ~]# cd /
[root@root /]# ls -l
total 68
-rw-r--r-- 1 root root 0 Jul 7 17:13 9000
lrwxrwxrwx. 1 root root 7 Apr 26 2020 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Apr 26 2020 boot
drwxr-xr-x 19 root root 2980 Jul 4 13:18 dev
drwxr-xr-x. 83 root root 4096 Jul 7 16:34 etc
drwxr-xr-x. 7 root root 4096 Jul 8 16:09 home
lrwxrwxrwx. 1 root root 7 Apr 26 2020 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Apr 26 2020 lib64 -> usr/lib64
drwx------. 2 root root 16384 Apr 26 2020 lost+found
drwxr-xr-x. 2 root root 4096 Apr 11 2018 media
drwxr-xr-x. 2 root root 4096 Apr 11 2018 mnt
drwxr-xr-x. 3 root root 4096 Jul 7 16:34 opt
drwxr-xr-x 2 root root 4096 Jul 3 23:28 patch
dr-xr-xr-x 98 root root 0 Jul 4 13:15 proc
dr-xr-x---. 7 root root 4096 Jul 12 23:16 root
drwxr-xr-x 27 root root 780 Jul 7 16:47 run
lrwxrwxrwx. 1 root root 8 Apr 26 2020 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 Jul 4 13:26 sys
drwxrwxrwt. 9 root root 4096 Jul 26 03:41 tmp
drwxr-xr-x. 14 root root 4096 Jul 3 20:56 usr
drwxr-xr-x. 19 root root 4096 Jul 3 23:26 var
drwxr-xr-x 6 root root 4096 Jul 3 23:18 www
2.显示指定目录下所有的目录,包括隐藏目录。
[root@root /]# ls -al
total 76
dr-xr-xr-x. 20 root root 4096 Jul 7 17:13 .
dr-xr-xr-x. 20 root root 4096 Jul 7 17:13 ..
-rw-r--r-- 1 root root 0 Jul 7 17:13 9000
-rw-r--r-- 1 root root 0 Apr 26 2020 .autorelabel
lrwxrwxrwx. 1 root root 7 Apr 26 2020 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Apr 26 2020 boot
drwxr-xr-x 19 root root 2980 Jul 4 13:18 dev
drwxr-xr-x. 83 root root 4096 Jul 7 16:34 etc
drwxr-xr-x. 7 root root 4096 Jul 8 16:09 home
lrwxrwxrwx. 1 root root 7 Apr 26 2020 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Apr 26 2020 lib64 -> usr/lib64
drwx------. 2 root root 16384 Apr 26 2020 lost+found
drwxr-xr-x. 2 root root 4096 Apr 11 2018 media
drwxr-xr-x. 2 root root 4096 Apr 11 2018 mnt
drwxr-xr-x. 3 root root 4096 Jul 7 16:34 opt
drwxr-xr-x 2 root root 4096 Jul 3 23:28 patch
dr-xr-xr-x 98 root root 0 Jul 4 13:15 proc
dr-xr-x---. 7 root root 4096 Jul 12 23:16 root
drwxr-xr-x 27 root root 780 Jul 7 16:47 run
lrwxrwxrwx. 1 root root 8 Apr 26 2020 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 Jul 4 13:26 sys
drwxrwxrwt. 9 root root 4096 Jul 26 03:41 tmp
drwxr-xr-x. 14 root root 4096 Jul 3 20:56 usr
drwxr-xr-x. 19 root root 4096 Jul 3 23:26 var
drwxr-xr-x 6 root root 4096 Jul 3 23:18 www
3.只显示目录本身,而不是列出目录内的文件数据。
#[root@root ~]# ls / 等价于
[root@root /]# ls
9000 bin boot dev etc home lib lib64 lost+found media mnt opt patch proc root run sbin srv sys tmp usr var www
4.显示当前目录下所有文件的详细信息。
[root@root ~]# cd /
[root@root /]# ls -l
total 68
-rw-r--r-- 1 root root 0 Jul 7 17:13 9000
lrwxrwxrwx. 1 root root 7 Apr 26 2020 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Apr 26 2020 boot
drwxr-xr-x 19 root root 2980 Jul 4 13:18 dev
drwxr-xr-x. 83 root root 4096 Jul 7 16:34 etc
drwxr-xr-x. 7 root root 4096 Jul 8 16:09 home
lrwxrwxrwx. 1 root root 7 Apr 26 2020 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Apr 26 2020 lib64 -> usr/lib64
drwx------. 2 root root 16384 Apr 26 2020 lost+found
drwxr-xr-x. 2 root root 4096 Apr 11 2018 media
drwxr-xr-x. 2 root root 4096 Apr 11 2018 mnt
drwxr-xr-x. 3 root root 4096 Jul 7 16:34 opt
drwxr-xr-x 2 root root 4096 Jul 3 23:28 patch
dr-xr-xr-x 98 root root 0 Jul 4 13:15 proc
dr-xr-x---. 7 root root 4096 Jul 12 23:16 root
drwxr-xr-x 27 root root 780 Jul 7 16:47 run
lrwxrwxrwx. 1 root root 8 Apr 26 2020 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 Jul 4 13:26 sys
drwxrwxrwt. 9 root root 4096 Jul 26 03:41 tmp
drwxr-xr-x. 14 root root 4096 Jul 3 20:56 usr
drwxr-xr-x. 19 root root 4096 Jul 3 23:26 var
drwxr-xr-x 6 root root 4096 Jul 3 23:18 www
2.3、 pwd:显示当前目录
语法:
pwd [参数]
选项与参数:
- -P :显示出绝对的路径。
- -L:目录链接时,输出连接路径。
案例:
1.输出当前目录。
[root@root /]# cd /bin
[root@root bin]# pwd
/bin
2.输出当前的真实路径,即物理路径。
[root@root bin]# pwd -P
/usr/bin
2.4、 mkdir:新建一个目录
语法:
mkdir [参数] 目录名
选项与参数:
- -m :配置文件的权限。
- -p :递归创建目录。
**注:**1.想要创建目录,必须要有权限。
2.如果创建的目录存在,则会创建失败。
3.当想要在不存在的目录下创建目录,一定要加上参数p,否则会报错,找不到该目录。
4.当直接使用mkdir创建文件时,此时创建的目录就在当前路径下。
案例:
1.在 /home/itbestboy/下创建一个test01目录,并且赋予一定的权限。
#1.进入/home/itbestboy/目录
[root@root bin]# cd /home/itbestboy/
[root@root itbestboy]# ls
apache-tomcat-9.0.48 apache-tomcat-9.0.48.tar.gz jdk-8u221-linux-x64.rpm
#2.创建目录
[root@root itbestboy]# mkdir -m 711 test01
[root@root itbestboy]# ls
apache-tomcat-9.0.48 apache-tomcat-9.0.48.tar.gz jdk-8u221-linux-x64.rpm test01
[root@root itbestboy]# cd /
#1.直接创建目录
[root@root /]# mkdir -m 711 /home/itbestboy/text01
[root@root /]# cd /home/itbestboy/
[root@root itbestboy]# ls
apache-tomcat-9.0.48 apache-tomcat-9.0.48.tar.gz jdk-8u221-linux-x64.rpm test01 text01
[root@root itbestboy]# ls -ll
total 186536
drwxr-xr-x 9 root root 4096 Jul 3 22:25 apache-tomcat-9.0.48
-rw-r--r-- 1 root root 11489338 Jul 3 20:49 apache-tomcat-9.0.48.tar.gz
-rw-r--r-- 1 root root 179505388 Jul 3 20:50 jdk-8u221-linux-x64.rpm
drwx--x--x 2 root root 4096 Jul 27 00:11 test01
drwx--x--x 2 root root 4096 Jul 27 00:12 text01
[root@root itbestboy]#
2.在 /home/itbestboy/下创建test02/test03/test04目录,其他默认。
#没有使用参数p,会报错
[root@root itbestboy]# mkdir test02/test03/test04
mkdir: cannot create directory ‘test02/test03/test04’: No such file or directory
#使用p参数,递归创建
[root@root itbestboy]# mkdir -p test02/test03/test04
[root@root itbestboy]# ls
apache-tomcat-9.0.48 apache-tomcat-9.0.48.tar.gz jdk-8u221-linux-x64.rpm test01 test02 text01
#进入test02
[root@root itbestboy]# cd test02/
[root@root test02]# ls
test03
#进入test03
[root@root test02]# cd test03/
[root@root test03]# ls
test04
[root@root test03]# cd test04/
[root@root test04]#
2.5、 rmdir:删除目录
语法:
rmdir [参数] 目录名称
选项与参数:
- **-p :**递归删除,包括空目录。
案例
1.删除上面创建的text01目录。
[root@root itbestboy]# rmdir text01
[root@root itbestboy]# ls
apache-tomcat-9.0.48 apache-tomcat-9.0.48.tar.gz jdk-8u221-linux-x64.rpm test01 test2
2.删除上面创建的test04目录
[root@root itbestboy]# rmdir -p test02/test03/test04
[root@root itbestboy]# ls
apache-tomcat-9.0.48 apache-tomcat-9.0.48.tar.gz jdk-8u221-linux-x64.rpm test01
2.6、 touch;创建一个空文件
语法:
touch 文件名
**注:**当创建一个文件时,如果此文件已经存在,此时不会报错。
案例
创建一个test.java文件
[root@root itbestboy]# touch test.java
[root@root itbestboy]# ls -lh
total 183M
drwxr-xr-x 9 root root 4.0K Jul 3 22:25 apache-tomcat-9.0.48
-rw-r--r-- 1 root root 11M Jul 3 20:49 apache-tomcat-9.0.48.tar.gz
-rw-r--r-- 1 root root 172M Jul 3 20:50 jdk-8u221-linux-x64.rpm
drwx--x--x 2 root root 4.0K Jul 27 00:11 test01
-rw-r--r-- 1 root root 20 Jul 27 00:43 test.java
2.7、 cp:复制目录或文件
语法:
cp [参数] [原文件或原目录] [目标文件或目标目录]
选项与参数:
- **-d:**若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
- **-l:**进行硬式连结(hard link)的连结档创建,而非复制文件本身;
- **-p:**连同文件的属性一起复制过去,而非使用默认属性(备份常用);
- **-r:**递归持续复制,用于目录的复制行为;(常用)
**注:**1)在复制目录时一定要加参数 r。
2)当在复制时加参数p时,此时复制了原文件的属性包括修改时间(不是复制后的系统时间,而是原来的修改时间),当不加p时复制后文件的修改时间为系统时间。
案例
1.将/home/itbestboy 下的文件test.java拷贝到/home/itbestboy/test01/目录下
#加参数 p
[root@root itbestboy]# cp -p test.java test01/
[root@root itbestboy]# cd test01/
[root@root test01]# ls
test.java
[root@root test01]# cat test.java
hello everyone!!!!!
#查看修改时间
[root@root test01]# ls -lh
total 4.0K
-rw-r--r-- 1 root root 20 Jul 27 00:43 test.java
#不加参数 p
[root@root itbestboy]# cp test.java test01/test01.java
[root@root itbestboy]# cd test01/
[root@root test01]# ls -lh
total 8.0K
-rw-r--r-- 1 root root 20 Jul 27 01:02 test01.java
-rw-r--r-- 1 root root 20 Jul 27 00:43 test.java
2.将/home/itbestboy 下的目录test01拷贝到/home/itbestboy/test02目录下
[root@root itbestboy]# cp -r test01/ test02/
[root@root itbestboy]# cd test02/
[root@root test02]# ls
test01 test01.java test.java
2.8、 mv:剪切目录或文件
语法:
mv [参数] [原文件或目录] [目标文件或目录]
参数说明:
- -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
- -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
- -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
- -n: 不要覆盖任何已存在的文件或目录。
- -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
命令格式 | 运行结果 |
---|---|
mv source_file(文件) dest_file(文件) | 将源文件名 source_file 改为目标文件名 dest_file |
mv source_file(文件) dest_directory(目录) | 将文件 source_file 移动到目标目录 dest_directory 中 |
mv source_directory(目录) dest_directory(目录) | 目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory |
mv source_directory(目录) dest_file(文件) | 出错 |
注: mv命令又叫做重命名命令,即可以对文件目录重新命名。
案例
1.将/home/itbestboy 目录下的文件test.java更改为hello.java
[root@root itbestboy]# mv test.java hello.java
[root@root itbestboy]# ls -lh
total 183M
-rw-r--r-- 1 root root 20 Jul 27 00:43 hello.java
drwxr-xr-x 9 root root 4.0K Jul 3 22:25 apache-tomcat-9.0.48
-rw-r--r-- 1 root root 11M Jul 3 20:49 apache-tomcat-9.0.48.tar.gz
-rw-r--r-- 1 root root 172M Jul 3 20:50 jdk-8u221-linux-x64.rpm
drwx--x--x 2 root root 4.0K Jul 27 01:13 test01
drwxr-xr-x 3 root root 4.0K Jul 27 01:15 test02
2.将/home/itbestboy/test01 目录下的文件test.java移动到/home/itbestboy/test02目录下
#分别查看test01 test02目录下的文件
[root@root itbestboy]# cd test01/
[root@root test01]# ls
test.java
[root@root test01]# cd ..
[root@root itbestboy]# cd test02
[root@root test02]# ls
test01 test.java
#可以发现有同名的文件,此时使用参数 i 便可以选择是否覆盖目标文件
[root@root itbestboy]# mv -i test01/test.java test02/
mv: overwrite ‘test02/test.java’? y
Linux基本命令之帮助命令及日期类命令:-----------------------------------------------------------《加载完成》-------------------------------------------------------