文件目录复制命令cp
      单源文件复制: cp [OPTION]...[-T] SOURCE DEST    

             如果目标不存在,则事先创建此文件,并复制源文件的内容至目标文件中

             如果目标存在,且为非目录文件,则覆盖

             如果目标存在,且为目录文件,则先在目标目录下创建一个与源文件同名的文件,并复制源文件的内容

      多源文件复制:cp [OPTION]...SOURCE...DIRECTORY
                               cp [OPTION]...-t DIRECTORY SOURCE...

              如果目标不存在,错误

              如果目标存在,并且非目录,错误

              如果目标存在,且为目录,则分别复制每个文件至目标目录中,并保持原名

      目录复制:

              如果目标不存在,则先创建目录,则按照文件复制的形式,将目录内的文件复制到目标目录中

              如果目标存在,并且是文件,错误

              如果目标存在,且是目录,将整个目录复制到目标目录中

例子:将一个a目录中所有内容,复制到b目录中

  1.      cp -r a b        #目录必须不存在   

  2.      cp -r a/* b      #目录必须存在

              常用选项:

                     -i   交互式复制,覆盖之前提醒用户确认

                     -f   强制覆盖目标文件

                     -r(-R) 递归复制目录

                     -d  复制符号链接文件本身,而非其指向的的源文件 

                     -a  -dR -preserve=all,archive,用于实现归档

                     --preserve=

                                mode:权限

                                ownership:属主和属性

                                timestamps:时间戳

                                context:安全标签

                                xattr:扩展属性

                                links:符号链接

                                all:上述所有属性

例子:切换到/tmp目录下,同时创建data1、data2、data3,共三个目录,分别在data1、data2、data3目录下创建三个文件,名字分别叫file1、file2、file3

 

[root@oldboy ~]# touch {1..3}.txt #创建3个txt文件

//将1.txt文件复制至/tmp目录中
[root@oldboy ~]# cp 1.txt /tmp/

//如果2.txt复制过来想保持原文件名,修改名称为2.txt.bak
[root@oldboy ~]# cp 2.txt /tmp/2.txt.bak
[root@oldboy ~]# ls /tmp/
1.txt
2.txt.bak

//如果复制过来想保持原来的属性,-p保持源文件或目录的属性

//复制目录只需要使用-r参数,递归复制
[root@oldboy ~]# cp -r a /tmp/
[root@oldboy ~]# ls /tmp/
1.txt

2.txt.bak
a

//将多个文件拷贝同一个目录 #
[root@oldboy ~]# cp -v ?.txt /tmp/
"1.txt" -> "/tmp/1.txt"
"2.txt" -> "/tmp/2.txt"
"3.txt" -> "/tmp/3.txt"
"4.txt" -> "/tmp/4.txt"

通配符
       ?通配任意单个字符
        * 通配任意多个字符

# cp -v /etc/hosts /etc/hosts.bak
# cp -v /etc/{hosts,hosts.bak}
# cp -v /etc/hosts{,.bak}

文件目录移动命令mv(剪切)重命名
mv [OPTION]...[-T] SOURCE DEST
mv [OPTION]...SOURCE...DIRECTORY
mv [OPTION]...-t DIRECTORY SOURCE...

//移动1.txt文件至/tmp目录
[root@oldboy ~]# mv 1.txt /tmp/
[root@oldboy ~]# ls /tmp/
1.txt

//移动2.txt文件至/tmp目录并修改名称2_test.txt
# mv 2.txt /tmp/2_test.txt

//移动多个文件或多个目录至同一目录下
[root@oldboy ~]# mv {3..6}.txt /opt/
[root@oldboy ~]# ls /opt
3.txt 4.txt 5.txt 6.txt

[root@oldboy ~]# mkdir dir{1..4}
[root@oldboy ~]# mv dir{1..4} /opt/
[root@oldboy ~]# ls /opt/
3.txt 4.txt 5.txt 6.txt dir1 dir2 dir3 dir4

文件目录删除命令 rm remove

rm/mv:

          自己做一个回收站
mv [OPTION]...FILE...
        -r 递归
       -v 详细过程
       -f 强制删除

//删除文件,默认会提醒是否删除文件
[root@oldboy ~]# rm /opt/3.txt
rm:是否删除普通空文件 "/opt/3.txt"?

//强制删除文件,不提醒
[root@oldboy ~]# rm -f /opt/4.txt
[root@oldboy ~]# ls /opt/
3.txt 5.txt 6.txt dir1 dir2 dir3 dir4

cd命令常见用法:
. 表示用户所处的当前目录
..表示上级目录
~ 表示当前用户自己的家目录

cd - //切换上次所在目录
cd ~ //切换当前用户家目录
cd //切换当前用户家目录
cd . //.代表当前目录,一般拷贝、移动等情况下使用
cd ..//切换至当前目录的上级目录

命令提示符:
[root@oldboy ~]#
root:当前登录用户名
oldboy:当前主机名
         hostnamectl set-hostname oldgirl #改主机名
~:当前所在目录名,不带路径
#:代表管理员,$表示普通用户
课外作业:命令提示符带颜色

echo $PS1 命令提示符的环境变量
[\u@\h \W]\$

Linux命令的组成
命令字 [命令选项] [命令参数]

报错信息:
1.-bash: AD: command not found
#命令找不到
2.ls: invalid option -- 'y'
#命令选项错了
3.ls: cannot access asdad: No such file or directory
#参数不对

专业输出错误

ls命令:
list
       -a --all 列出所有包括隐藏的文件
       -l 以长格式的方式列出文件信息
       -al 列出所有包括隐藏的文件,以长格式列出
短格式可以组合

目录管理命令
mkdir
      make directory
      -p
tree
       -L 按目录级别列出tree
       -d 只列出目录,不列出文件

文件管理命令
创建或更改时间
touch