1. mkdir 创建空目录:
mkdir 创建空目录 -p 一次性创建多层目录 -pv 一次性创建多层目录并显示详情信息
1.1 mkdir 创建空目录实践:
[root@localhost ~]# cd /opt/ //切换目录到opt
[root@localhost opt]# ls //列表显示文件本身或者目录的内容
rh //opt下面只有一个rh
[root@localhost opt]# mkdir xy101 // 创建空目录xy101
[root@localhost opt]# ls //查看文件内容有没有创建上
rh xy101
[root@localhost opt]# mkdir xy 102 103 104
//同时创建xy, 102, 103, 104四个个目录
[root@localhost opt]# ls //查看有没有创建成功
102 103 104 rh xy xy101
1.1.1 mkdir 创建多个空目录实践
mkdir xx{x··x}
[root@localhost cc]#
[root@localhost cc]# cd
[root@localhost ~]# cd /opt/ //切换目录到opt
[root@localhost opt]# mkdir tt{1..10}
//创建空目录tt1,tt2,tt3,tt4···tt10,十个空目录
[root@localhost opt]# ls
102 104 tt1 tt2 tt4 tt6 tt8 xy
103 rh tt10 tt3 tt5 tt7 tt9 xy101
注: tt{1..5} =tt{1.2.3.4.5} =tt1、tt2、tt3、tt4、tt5
1.2 mkdir xxx -p 一次性创建多层目录 实践:
-p 一次性创建多层目录
[root@localhost xy]# cd /opt/ //切换到opt
[root@localhost opt]# mkdir xy/11/22/33 -p //一次性创建多层目录,xy下面创建11,11下创建22,22下创建33
[root@localhost opt]# cd xy/11/22/33/ //切换到xy下的11,11下的22,22下的33
[root@localhost 33]# pwd //显示当前所在目录
/opt/xy/11/22/33
[root@localhost 33]#
注:-p选项和参数没有前后之分,-p可以在最后也可以在中间
1.2.1 mkdir xxx -pv 一次性创建多层目录并显示详情信息 实践:
-pv // v 代表显示详情信息 , p 一次性创建多层目录
[root@localhost 33]# cd /opt/ //切换目录opt
[root@localhost opt]#
[root@localhost opt]#
[root@localhost opt]# mkdir xy101/aa/bb/cc -pv
//在xy101下创建aa,aa下创建bb,bb下创建cc,并且显示详情信息
mkdir: 已创建目录 "xy101/aa"
mkdir: 已创建目录 "xy101/aa/bb"
mkdir: 已创建目录 "xy101/aa/bb/cc"
[root@localhost opt]#
[root@localhost opt]# cd /opt/
[root@localhost opt]# cd xy101/aa/bb/cc
[root@localhost cc]# pwd //查看当前所在目录
/opt/xy101/aa/bb/cc
[root@localhost cc]#
2.touch 创建空文件,更新文件时间
touch 创建空文件,更新文件时间
2.1 touch 创建空文件 实践
[root@localhost opt]# touch 666 // 创建空文件666
[root@localhost opt]# ls //查看
102 104 rh tt10 tt3 tt5 tt7 tt9 xy101
103 666 tt1 tt2 tt4 tt6 tt8 xy
[root@localhost opt]#
剩下的创建实验参考 1.1 1.1.1
2.2 touch 更新文件时间 实践:
touch xx 更新文件时间
[root@localhost opt]# ls -l //以长格式的形式显示文件属性
总用量 0
-rw-r--r--. 1 root root 0 4月 8 16:36 100
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
drwxr-xr-x. 3 root root 16 4月 8 15:37 xy //注意这里xy的文件修改时间是 4月 8 15:37
drwxr-xr-x. 3 root root 16 4月 8 15:48 xy101
[root@localhost opt]# touch xy
[root@localhost opt]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 4月 8 16:36 100
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
drwxr-xr-x. 3 root root 16 4月 8 16:37 xy //注意这里xy的文件修改时间是 4月 8 16:37
drwxr-xr-x. 3 root root 16 4月 8 15:48 xy101
[root@localhost opt]#
注意:touch的文件如果目标存在,则是更新文件时间
如果目标不存在,则是创建一个新的空文件
3. 软链接和硬链接的区别:
3.1 软链接:
创建命令:ln -s <源文件路径> <链接文件路径>;
- 删除源文件会失效;适用于文件和目录;
-
软链接文件可以和源文件不在同一个分区里;
- 软链接文件和源文件inode号不同
3.2 硬链接:
创建命令:ln <源文件路径> <链接文件路径>;
- 删除源文件不会失效(因为是和源文件共享同一个文件数据);只适用于文件;
-
硬链接文件必须要和源文件在同一个分区里;
- 硬链接文件和源文件inode号相同
注意:源文件路径建议使用绝对路径来表示,防止因为链接文件位置变化而失效
3.3 软连接硬链接实验 :
软链接创建 实验:
创建命令:ln -s <源文件路径> <链接文件路径>;
[root@localhost opt]# ln -s 100 link.txt //在100文件下,创建一个link.txt软连接文件
[root@localhost opt]# ls -l //以长格式形式显示文件属性
总用量 0
-rw-r--r--. 1 root root 0 4月 8 16:36 100
lrwxrwxrwx. 1 root root 3 4月 8 17:12 link.txt -> 100 //新建的link.txt软连接
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
drwxr-xr-x. 3 root root 16 4月 8 16:37 xy
drwxr-xr-x. 3 root root 16 4月 8 15:48 xy101
[root@localhost opt]#
硬链接创建 实验:
创建命令:ln <源文件路径> <链接文件路径>;
[root@localhost opt]# ln 100 hard.txt ///在100目录下创建一个hard.txt硬链接
[root@localhost opt]# ls -l //以长格式查看文件属性
总用量 0
-rw-r--r--. 2 root root 0 4月 8 16:36 100
-rw-r--r--. 2 root root 0 4月 8 16:36 hard.txt //新建硬链接
lrwxrwxrwx. 1 root root 3 4月 8 17:12 link.txt -> 100
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
drwxr-xr-x. 3 root root 16 4月 8 16:37 xy
drwxr-xr-x. 3 root root 16 4月 8 15:48 xy101
[root@localhost opt]#
在Linux系统中,硬链接数为0时,才会被删除
[root@localhost opt]# echo 123 >hard.txt //写123到hard.txt(硬链接)
[root@localhost opt]# cat 100 //查看100文件下的内容
123
[root@localhost opt]# cat hard.txt
123
[root@localhost opt]# rm -rf 100 //删除100文件
[root@localhost opt]# ls -l //以长格式的形式打开
总用量 4
-rw-r--r--. 1 root root 4 4月 8 22:29 hard.txt
lrwxrwxrwx. 1 root root 3 4月 8 17:12 link.txt -> 100
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
drwxr-xr-x. 3 root root 16 4月 8 16:37 xy
drwxr-xr-x. 3 root root 16 4月 8 15:48 xy101
[root@localhost opt]#
[root@localhost opt]#
[root@localhost opt]# cat link.txt //这个时候打开软连接显示没有源文件
cat: link.txt: 没有那个文件或目录
[root@localhost opt]# cat hard.txt //硬链接还可以正常打开
123
[root@localhost opt]#
相对路径 和 绝对路径 建立软链接:
用绝对路径和相对路径建立软链接,把他们移动到家目录,绝对路径文件还有效,相对路径出现问题
[root@localhost opt]# echo abc >1 //写入1文件abc
[root@localhost opt]# echo 123 >2 //写入2文件123
[root@localhost opt]# ls -l //以长格式展开
总用量 12
-rw-r--r--. 1 root root 4 4月 8 22:58 1
-rw-r--r--. 1 root root 4 4月 8 23:00 2
-rw-r--r--. 1 root root 4 4月 8 22:29 hard.txt
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
drwxr-xr-x. 3 root root 16 4月 8 16:37 xy
drwxr-xr-x. 3 root root 16 4月 8 15:48 xy101
[root@localhost opt]#
[root@localhost opt]# ln -s 1 link1.txt //源文件路径用相对路径建软链接
[root@localhost opt]# ln -s /opt/2 link2.txt //源文件路径用绝对路径建软链接
[root@localhost opt]# ls -l //以长格式展开
总用量 12
-rw-r--r--. 1 root root 4 4月 8 22:58 1
-rw-r--r--. 1 root root 4 4月 8 23:00 2
-rw-r--r--. 1 root root 4 4月 8 22:29 hard.txt
lrwxrwxrwx. 1 root root 1 4月 8 23:01 link1.txt -> 1
lrwxrwxrwx. 1 root root 6 4月 8 23:02 link2.txt -> /opt/2
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
drwxr-xr-x. 3 root root 16 4月 8 16:37 xy
drwxr-xr-x. 3 root root 16 4月 8 15:48 xy101
[root@localhost opt]#
[root@localhost opt]#
[root@localhost opt]# mv link* /root 把link文件移动到家目录
[root@localhost opt]# ls // 显示文件
1 2 hard.txt rh xy xy101
[root@localhost opt]# cd //切换目录
[root@localhost ~]# ls //显示家目录下的文件
anaconda-ks.cfg link1.txt 公共 视频 文档 音乐
initial-setup-ks.cfg link2.txt 模板 图片 下载 桌面
[root@localhost ~]# ls -l //以长格式的形式显示文件
总用量 8
-rw-------. 1 root root 2052 4月 2 22:27 anaconda-ks.cfg
-rw-r--r--. 1 root root 2083 4月 2 22:32 initial-setup-ks.cfg
lrwxrwxrwx. 1 root root 1 4月 8 23:01 link1.txt -> 1
lrwxrwxrwx. 1 root root 6 4月 8 23:02 link2.txt -> /opt/2
drwxr-xr-x. 2 root root 6 4月 2 23:23 公共
drwxr-xr-x. 2 root root 6 4月 2 23:23 模板
drwxr-xr-x. 2 root root 6 4月 2 23:23 视频
drwxr-xr-x. 2 root root 6 4月 2 23:23 图片
drwxr-xr-x. 2 root root 6 4月 2 23:23 文档
drwxr-xr-x. 2 root root 6 4月 2 23:23 下载
drwxr-xr-x. 2 root root 6 4月 2 23:23 音乐
drwxr-xr-x. 2 root root 6 4月 2 23:23 桌面
[root@localhost ~]#
硬链接:当一个文件拥有多个硬链接时,对文件内容修改,会影响到所有文件名
cp 复制文件/目录指定路径:
cp 复制文件/目录指定路径
cp [选项] 源文件/目录路径 ... 目标路径
\cp -f cp -r -p -a
cp的常用选项:
-f:覆盖目标同名文件或目录时不进行提醒,而直接强制复制。
-i:覆盖目标同名文件或目录时提醒用户确认。
-p:复制时保持源文件的权限、属主及时间标记等属性不变。
-r:复制目录时必须使用此选项,表示递归复制所有文件及子目录。
注意:当复制多个文件或目录时,目标路径必须是已存在的目录
cp 复制文件/目录指定路径 实验:
[root@localhost opt]# cp 1 3 //复制1 3 文件
[root@localhost opt]# ls //查看
1 2 3 hard.txt rh xy xy101
[root@localhost opt]# cp {1,2,3} /root //复制文件1,2,3,到root文件下
[root@localhost opt]# cd //切换目录
[root@localhost ~]# ls //查看目录文件
1 anaconda-ks.cfg link2.txt 视频 下载
2 initial-setup-ks.cfg 公共 图片 音乐
3 link1.txt 模板 文档 桌面
[root@localhost ~]# cp 1 /opt/abc.txt //复制文件1到/opt/文件下,并改名成abc.txt
[root@localhost ~]# cd /opt/ //切换目录到/opt/
[root@localhost opt]# ls //查看目录文件
1 2 3 abc.txt hard.txt rh xy xy101
[root@localhost opt]# cat abc.txt //查看abc.txt文件内容
abc
[root@localhost opt]#
[root@localhost opt]# cd - //切换上一个目录
/root
[root@localhost ~]# ls //查看root目录下有什么文件
1 abc.txt link1.txt 模板 文档 桌面
2 anaconda-ks.cfg link2.txt 视频 下载
3 initial-setup-ks.cfg 公共 图片 音乐
[root@localhost ~]# cp abc.txt /opt/ //复制abc.txt去 /opt/下
cp:是否覆盖"/opt/abc.txt"? yes
[root@localhost ~]# cp abc.txt /opt/ //复制abc.txt去 /opt/下
cp:是否覆盖"/opt/abc.txt"? no
[root@localhost ~]#
-f:覆盖目标同名文件或目录时不进行提醒,而直接强制复制。
[root@localhost ~]# cp -f abc.txt /opt/ //强制复制,覆盖不停醒
cp:是否覆盖"/opt/abc.txt"? //有提醒
[root@localhost ~]#
[root@localhost ~]# alias //查看别名命令
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost ~]#
[root@localhost ~]# /usr/bin/cp -f abc.txt /opt/ //指定文件路径
[root@localhost ~]# \cp -f abc.txt /opt/ //使用原生cp命令
-p:复制时保持源文件的权限、属主及时间标记等属性不变。(属主和属组不会发生改变,还是保持原来的样子)
-r:复制目录时必须使用此选项,表示递归复制所有文件及子目录
-a可以保持原属性复制目录
rm 删除文件/目录
rm 删除文件 //删除文件
rm -rf //删除文件/目录
rm的常用选项:
-f:删除文件或目录时不进行提醒,而直接强制删除。
-i:删除文件或目录时提醒用户确认。(y表示删除,n表示不删除)
-r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。
注:不要直接删除系统中已有的目录或配置文件,以避免出现意外故障。
![](https://img-blog.csdnimg.cn/direct/0cfe2d2cb5f04e7c980e541059f6dd9d.png)
mv 移动文件/目录到指定路径
mv 移动文件/目录到指定路径,
如果目标位置与源文件修改单个文件的文件名
[root@localhost ~]# mv abc/ /opt //目录abc移动到opt
[root@localhost ~]#
[root@localhost ~]# mv abc.txt /root/a.txt //abc.txt移动到/root/下并改名a.txt
[root@localhost ~]#
[root@localhost opt]# mv abc.txt a.txt // abc.txt改名 a.txt
[root@localhost opt]# mv abc/ 123 //abc/目录改名 123
rename 批量修改文件名
rename 旧字符 新字符 目标文件
find 根据条件查找文件/目录
find 指定目录 指定条件
-name "文件名" #支持通配符 //根据文件名称
-type f|d //f文件 d目录 //根据文件类型
-size +XXk -XXM G //根据文件大小
-user "用户名" //根据文件属主
-mtime +XX -XX
-a -o // -a表示而且 -o表示或者
-exec 命令 {} \;
查找文件的命令:
which // 查看可执行文件的位置,
find //查看文件的位置
whereis // 配合数据库查看文件位置
locate // 实际搜寻硬盘查询文件名称
which 查找命令文件存放目录
which 命令|程序名 //默认当找到第一个目标后不再继续查找
which -a 命令|程序名 //在所有搜索路径中查找
find 查找文件或目录
find [查找范围] [查找条件表达式]
采用递归方式,根据目标的名称、类型、大小等不同性进行精细查找
命令执行的优先级:
第一优先级:指定路径的命令。绝对路径 /usr/bin/ls 或者相对路径 cd /usr/bin ./ls
第二优先级:别名指定的命令 alias myls='/usr/bin/ls -alh'
第三优先级:内部命令
第四优先级:hash 命令
linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样。第一次执行命令shell解释器默认的会从PATH路径下寻找该命令的路径,当你第二次使用该命令时,shell解释器首先会查看hash表,没有该命令才会去PATH路径下寻找。hash表能提高命令的调用速率。
第五优先级:通过 PATH 定义的路径顺序查找
如果以上顺序都找不到,就会报“未找到命令...”的错误。