Linux常用命令(2)

本文详细介绍了Linux中的mkdir创建空目录、touch创建空文件与更新时间、软链接和硬链接的区别、以及cp复制文件、rm删除文件、mv移动文件和find查找文件的相关操作,包括它们的实践和注意事项。
摘要由CSDN通过智能技术生成

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  //  代表显示详情信息   , 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 <源文件路径> <链接文件路径>;

  1. 删除源文件会失效;适用于文件和目录
  2. 软链接文件可以和源文件不在同一个分区里;
  3. 软链接文件和源文件inode号不同

3.2 硬链接:

创建命令:ln <源文件路径> <链接文件路径>;

  1. 删除源文件不会失效(因为是和源文件共享同一个文件数据);只适用于文件
  2. 硬链接文件必须要和源文件在同一个分区里;
  3. 硬链接文件和源文件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:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。

注:不要直接删除系统中已有的目录或配置文件,以避免出现意外故障。


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 定义的路径顺序查找

如果以上顺序都找不到,就会报“未找到命令...”的错误。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值