• 网络安全学习:系统基础命令操作


    [#####成功在于你坚持了别人坚持不了的东西####]

    1.1 系统命令界面介绍

    1.1.1 命令操作界面作用概述

    Linux是一个主要通过命令行来进行管理的操作系统,和windows系统利用鼠标点击这类可视化管理大不相同。

    Linux命令行管理,可以实现批量、自动化管理,智能化、以及可视化管理。是Linux技术人员必须掌握的技能

    在这里插入图片描述

    系统启动后,输入用户名和密码后,或者建立远程连接后,就意味着进入了命令行操作界面。

    说明:命令行输入命令都是由bash/shell解释器执行的,bash解释器可以理解为是系统中的翻译官。

    1.1.2 命令行提示符作用介绍

    命令行出现提示符主要用于提示操作者可以输入相应命令

    提示符种类介绍说明:

    这是超级管理员root用户对应的命令行(所有权限都具备)

    [root@Linux ~]# ff dd
    
    • 1

    这是普通用户xiaoQ对应的命令行(只具有部分操作能力)

    [xiaoQ@Linux ~]$ pwd        
    
    • 1

    提示符信息组成部分:
    在这里插入图片描述

    提示符信息修改方法:
    需要借助后面所学的环境变量知识概念,利用PS1变量概念进行修改调整。

    [root@xiaoQ ~]# set|grep PS1
    PS1='[\u@\h \W]\$ '
    
    • 1
    • 2

    利用PS1环境变量的设置,构成了提示符信息的组成部分。(了解即可)

    1.1.3 系统命令语法格式说明

    Linux命令行中在进行命令输入过程中,需要遵循一定的语法结构:

    在这里插入图片描述

    命令语法格式说明:

    中括号[]表示可选,即命令的参数及路径信息或具体文件数据信息。
    参数选项表示使用一个命令的不同功能。
    命令、参数选项、文件或路径两两之间至少要有一个空格。

    操作示例演示说明:

    创建一个test文件,然后查看创建结果,最后删除掉,再查看删除结果:

    [root@xiaoQ ~]# touch test.txt
    [root@xiaoQ ~]# ls
    anaconda-ks.cfg  Image_001.png  test.txt
    [root@xiaoQ ~]# rm -f test.txt
    [root@xiaoQ ~]# ls
    anaconda-ks.cfg  Image_001.png
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    1.1.4 系统命令行常用快捷键

    在Linux系统中使用快捷键,可以有效提高命令行操作界面的执行效率。

    序号 快捷键 解释说明
    最有用快捷键
    01 tab 命令或路径,以及文件等信息的补全键,Linux最常用快捷键
    移动光标快捷键
    01 Ctrl+A 光标回到命令行首
    02 Ctrl+E 光标回到命令行尾
    03 Ctrl+方向键右 光标向右以字符串为单位进行快速移动
    04 Ctrl+方向键左 光标向左以字符串为单位进行快速移动
    剪切、粘贴、清除快捷键
    01 Ctrl+K 剪切(删除)光标处到行尾的字符
    02 Ctrl+U 剪切(删除)光标处到行首的字符
    03 Ctrl+W 剪切(删除)光标前的一个单词
    04 Ctrl+Y 粘贴ctrl+U,crtl+k,ctrl+w删除的文本
    系统管理控制快捷键
    01 Ctrl+C 中断终端正在执行的任务或者取消整行命令输入
    02 Ctrl+L 清除屏幕上的所有内容,并在屏幕上面开始一个新行,等同clear命令
    03 Ctrl+D 退出当前shell命令行
    04 Ctrl+Z 暂停执行在终端运行的任务(主要后面服务知识章节会使用)
    05 Ctrl+S 锁定终端,使之无法输入内容(了解)
    06 Ctrl+Q 解锁执行Ctrl+S的锁定状态(了解)
    重复执行命令快捷键
    01 Ctrl+R 搜索命令行使用过的历史命令记录
    02 Esc+.(点) 获取上一条命令的最后的部分(空格分隔)

    1.2 操作界面获取帮助

    Linux运维学习过程中主要有三种自学的方法:

    • 利用网站搜索功能:收集各种技能知识,并进行总结

    • 利用官方网站介绍:针对服务程序,可以进行更深入的扩展学习

    • 利用帮助命令自学:利用常见的man help info命令获取更多的帮助说明信息

    1.2.1 获取帮助信息方法-man

    功能说明:

    用于查看命令或部分文件帮助说明信息

    使用方法:

    man [参数选项] 命令/文件
    
    • 1

    具体操作:

    [root@xiaoQ ~]# man cp
    NAME (可以获取命令简单介绍信息)
           cp - copy files and directories
    SYNOPSIS (具体命令语法结构信息)
           cp [OPTION]... [-T] SOURCE DEST
           cp [OPTION]... SOURCE... DIRECTORY
           cp [OPTION]... -t DIRECTORY SOURCE...
    ​
    DESCRIPTION (具有此命令可以使用的参数选项信息)
           Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
           Mandatory arguments to long options are mandatory for short options too.
    ​
           -a, --archive
                  same as -dR --preserve=all
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    说明:可以利用字母Q退出帮助信息查看页面;可以利用/具体内容实现对指定信息检索

    也可以利用–help获取更精炼的man手册的帮助信息

    [root@xiaoQ ~]# cp --help
    
    • 1

    1.2.2 获取帮助信息方法-help

    功能说明:

    可以用于查看系统内置的命令的帮助信息。

    • 内置命令:系统安装完毕,自身就有的命令(很多Linux版本都有的命令)

    • 外置命令:需要借助第三方程序,进行安装部署后才具有的命令

    使用方法:

    help 内置命令

    具体操作:

    [root@xiaoQ ~]# help cd
    cd: cd [-L|[-P [-e]]] [dir]
        Change the shell working directory.
        
        Change the current directory to DIR.  The default DIR is the value of the
        HOME shell variable.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    当前系统都有哪些内置命令

    bash,  :,  ., [, alias, bg, bind, break, builtin, caller, cd, command, compgen, complete,
    compopt, continue, declare, dirs, disown, echo, enable, eval, exec, exit, export,  false,
    fc,  fg,  getopts,  hash,  help,  history, jobs, kill, let, local, logout, mapfile, popd,
    printf, pushd, pwd, read, readonly, return, set, shift,  shopt,  source,  suspend,  test,
    times,  trap,  true,  type,  typeset, ulimit, umask, unalias, unset, wait
    
    • 1
    • 2
    • 3
    • 4
    • 5

    1.2.3 获取帮助信息方法-info(了解)

    功能说明:

    可以用于作为man或help命令的帮助信息补充

    使用方法:

    info 命令

    具体操作:

    [root@xiaoQ ~]# info ls
    
    • 1

    1.3 系统运行相关命令

    1.3.1 关机重启注销命令

    重启或关机命令:shutdown
    shutdown是一个用来安全关闭或重启Linux系统的命令,系统在关闭重启之前会通知所有的登录用户,系统即将关闭重启

    此时所有的新用户都不可以登录

    语法格式:

    shutdown [OPTION]… TIME [MESSAGE]
    shutdown [选项]     时间 消息
    
    • 1
    • 2

    常用参数:

    序号 参数选项 功能说明
    01 -r 重启系统,而不是关机,这个参数在系统重启时常用
    02 -h 关闭系统,这个参数在系统关机时常用
    03 -c 取消正在执行的shutdown指令
    实践操作:

    实践操作-01:指定多久关闭/重启系统

    关闭主机系统

    [root@xiaoQ ~]# shutdown -h 10
    Shutdown scheduled for Wed 2021-11-24 04:25:22 CST, use 'shutdown -c' to cancel.
    
    • 1
    • 2

    – 即将执行一个关闭主机的计划,大概在什么时间进行执行,可以使用shutdown -c取消计划

    Broadcast message from root@xiaoQ.linux (Wed 2021-11-24 04:15:22 CST):
    
    • 1

    – 利用广播方式通知给所有系统操作用户

    The system is going down for power-off at Wed 2021-11-24 04:25:22 CST!
    
    • 1

    – 这个系统将在什么时间点进行关机处理

    重启主机系统

    [root@xiaoQ ~]# shutdown -r 10
    Shutdown scheduled for Wed 2021-11-24 04:28:32 CST, use 'shutdown -c' to cancel.
    
    • 1
    • 2

    – 即将执行一个关闭主机的计划,大概在什么时间进行执行,可以使用shutdown -c取消计划

    Broadcast message from root@xiaoQ.linux (Wed 2021-11-24 04:18:33 CST):
    
    • 1

    – 利用广播方式通知给所有系统操作用户

    The system is going down for reboot at Wed 2021-11-24 04:28:32 CST!
    
    • 1

    – 这个系统将在什么时间点进行重启处理

    实践操作-02:指定时间关闭/重启系统

    关闭主机系统

    [root@xiaoQ ~]# shutdown -h 11:00
    Shutdown scheduled for Wed 2021-11-24 11:00:00 CST, use 'shutdown -c' to cancel.
    
    • 1
    • 2

    重启主机系统

    [root@xiaoQ ~]# shutdown -r 11:00
    Shutdown scheduled for Wed 2021-11-24 11:00:00 CST, use 'shutdown -c' to cancel.
    
    • 1
    • 2

    实践操作-03:实现立即关闭/重启系统

    关闭主机系统

    [root@xiaoQ ~]# shutdown -h 0
    [root@xiaoQ ~]# shutdown -h now
    
    • 1
    • 2

    重启主机系统

    [root@xiaoQ ~]# shutdown -r 0
    [root@xiaoQ ~]# shutdown -r now
    
    • 1
    • 2

    实践操作-04:取消关闭/重启系统计划

    取消关闭主机计划/取消重启主机计划

    [root@xiaoQ ~]# shutdown -c
    Broadcast message from root@xiaoQ.linux (Wed 2021-11-24 04:18:37 CST):
    The system shutdown has been cancelled at Wed 2021-11-24 04:19:37 CST!
    
    • 1
    • 2
    • 3

    说明:以上操作实践过程必须使用系统管理员用户(root)进行操作。

    重启或关机命令:halt/poweroff/reboot/systemctl
    halt/poweroff/reboot/systemctl这四个命令同样也具有相应关机或重启功能,可以进行了解。

    语法格式:

    halt [option]
    poweroff [option]
    reboot [option]
    systemctl [option]
    
    • 1
    • 2
    • 3
    • 4

    实践操作:

    实践操作-01:使用halt命令关机

    [root@xiaoQ ~]# halt
    
    • 1

    实践操作-02:使用poweroff命令关机

    [root@xiaoQ ~]# poweroff
    
    • 1

    实践操作-03:使用reboot命令重启

    [root@xiaoQ ~]# reboot
    
    • 1

    实践操作-04:使用systemctl命令重启/关闭主机

    关闭主机系统

    [root@xiaoQ ~]# systemctl poweroff
    
    • 1

    重启主机系统

    [root@xiaoQ ~]# systemctl reboot
    
    • 1

    注销退出系统命令:Linux多用户管理的系统

    注销退出当前用户窗口

    [root@xiaoQ ~]# logout
    
    • 1

    注销退出当前用户窗口,等价于使用快捷键ctrl+d

    [root@xiaoQ ~]# exit
    
    • 1

    1.4 系统目录相关命令

    1.4.1 系统目录层级概念

    Linxu目录层级结构和windows是有明显区别的,在Linux系统中没用磁盘分区盘符概念,所有数据都是存储在根目录中。

    因此/ 根目录就是Linux目录层级的最顶端,从最顶端可以依次向下扩展更多不同层级目录。

    在这里插入图片描述

    目录绝对路径

    是从 / 根 开始的路径,例如:/data、/mnt/xiaoQ

    应用:使用绝对路径操作更加精准

    目录相对路径

    不是从 / 根 开始的路径,而是从当前目录或指定的目录开始的,例如,data/,./mnt/xiaoQ

    应用:使用相对路径操作更加方便

    目录层级结构查看-tree
    以树形结构显示目录下的所有内容,包括所有文件、子目录及子目录里的目录和文件

    语法格式:

    tree [option] [directory]
    tree   选项      目录
    
    • 1
    • 2

    常用参数:

    序号 参数选项 解释说明
    01 -a 显示所有文件,包含隐藏文件
    02 -d 只显示目录结构中的目录信息
    03 -L 遍历目录的最大层数,level为大于0的正整数
    04 -F 在执行文件、目录、socket、符号链接、管道名称等不同类型文件的结尾,各自加上相应符号
    常见符号信息“*” “/” “=” “@” “|”
    操作准备:

    检查系统中是否安装了tree命令对应的软件程序包,如果采用的是最小化安装Linux系统的方式,tree命令功能默认没有安装的

    需要在系统中进行安装部署:

    查看确认tree软件程序是否存在

    [root@xiaoQ ~]# rpm -qa tree
    tree-1.6.0-10.el7.x86_64
    
    • 1
    • 2

    进行tree软件程序安装过程

    [root@xiaoQ ~]# yum install -y tree
    
    • 1

    说明:只有在系统中安装好tree软件程序包,系统中才能拥有tree命令,因此tree命令就是比较典型的外置命令

    实践操作:

    实践操作-01: 不带任何参数获取目录结构数据信息

    [root@xiaoQ ~]# tree
    .
    ├── anaconda-ks.cfg
    └── Image_001.png
    ​
    0 directories, 2 files
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    实践操作-02: 以树形结构显示目录下的所有内容(包含隐藏信息)

    [root@xiaoQ ~]# tree -a
    .
    ├── anaconda-ks.cfg
    ├── .bash_history
    ├── .bash_logout
    ├── .bash_profile
    ├── .bashrc
    ├── .cshrc
    ├── Image_001.png
    ├── .lesshst
    └── .tcshrc
    ​
    0 directories, 9 files
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    说明:在Linux系统中,名称以点开头的文件都是隐藏文件

    实践操作-03: 只列出根目录下第一层的目录结构信息

    [root@xiaoQ /]# tree -L 1 /
    /
    ├── bin -> usr/bin
    ├── boot
    ├── dev
    ├── etc
    ├── home
    ├── lib -> usr/lib
    ├── lib64 -> usr/lib64
    ├── media
    ├── mnt
    ├── opt
    ├── proc
    ├── root
    ├── run
    ├── sbin -> usr/sbin
    ├── srv
    ├── sys
    ├── tmp
    ├── usr
    └── var
    ​
    19 directories, 0 files
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    实践操作-04: 只显示目录结构信息中的所有目录信息

    [root@xiaoQ /]# tree -d /boot
    /boot
    ├── efi
    │   └── EFI
    │       └── centos
    ├── grub
    └── grub2
        ├── fonts
        ├── i386-pc
        └── locale
    ​
    8 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    1.4.2 显示当前路径信息

    功能说明:

    pwd命令是"print working directory"中每个单词的首字母缩写,其功能是显示当前工作目录的绝对路径。

    在实际工作中,在命令行操作命令时,经常会在各个目录路径间进行切换,此时可使用pwd命令快速查看当前所在的目录路径。

    声明:pwd属于系统内置命令,想获取详细帮助信息请使用help命令

    语法格式:

    pwd [option]
    pwd  选项
    
    • 1
    • 2

    实践操作:

    实践操作-01: 查看当前操作状态所在路径

    登录系统后,默认所在的目录为系统用户家目录

    [root@xiaoQ ~]# pwd
    /root
    
    • 1
    • 2

    切换目录信息,进行查看目录是否切换成功

    [root@xiaoQ ~]# cd /etc/init.d
    [root@xiaoQ init.d]# pwd
    /etc/init.d
    [root@xiaoQ init.d]# cd /etc/sysconfig/network-scripts/
    [root@xiaoQ network-scripts]# pwd
    /etc/sysconfig/network-scripts
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    1.4.3 切换目录路径信息

    功能说明:

    cd命令是“change directory”中每个单词的首字母缩写,其功能是从当前工作目录切换到指定的工作目录。

    语法格式:

    cd [option] [dir]
    cd  [选项]  [目录]
    
    • 1
    • 2

    常用参数:

    序号 参数选项 解释说明
    01 - 若只使用-选项,表示切换目录到当前用户的上一次所在的目录路径
    02 ~ 若只使用~选项,表示切换目录到当前用户的家目录所在的目录路径(直接执行cd效果一致)
    03 … 若值使用…选项,则将会从当前目录切换到目录的上一级目录所在的路径
    实践操作:

    实践操作-01:进入系统/usr/local目录

    [root@xiaoQ ~]# pwd
    /root
    [root@xiaoQ ~]# cd /usr/local/      -- 利用绝对路径方式进行切换
    [root@xiaoQ local]# pwd
    /usr/local
    
    • 1
    • 2
    • 3
    • 4
    • 5

    实践操作-02:切换到当前目录的上一级目录

    [root@xiaoQ local]# pwd
    /usr/local
    [root@xiaoQ local]# cd ..
    [root@xiaoQ usr]# pwd
    /usr
    [root@xiaoQ usr]# cd local/         -- 利用相对路径方式进行切换
    [root@xiaoQ local]# pwd
    /usr/local
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    实践操作-03:进入当前目录的父目录的父目录中

    [root@xiaoQ local]# cd /etc/sysconfig/network-scripts/
    [root@xiaoQ network-scripts]# pwd
    /etc/sysconfig/network-scripts
    [root@xiaoQ network-scripts]# cd ../../
    [root@xiaoQ etc]# pwd
    /etc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    实践操作-04:返回当前用户上一次所在的目录

    [root@xiaoQ etc]# cd /usr/local/
    [root@xiaoQ local]# cd /etc/sysconfig/network-scripts/
    [root@xiaoQ network-scripts]# cd /usr/local/
    [root@xiaoQ local]# cd /etc/sysconfig/network-scripts/
    [root@xiaoQ network-scripts]# cd -
    /usr/local
    [root@xiaoQ local]# cd -
    /etc/sysconfig/network-scripts
    [root@xiaoQ network-scripts]# cd -
    /usr/local
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    实践操作-05:进入当前用户的家目录

    [root@xiaoQ ~]# cd /usr/local/
    [root@xiaoQ local]# cd ~
    [root@xiaoQ ~]# cd /usr/local/
    [root@xiaoQ local]# cd
    
    • 1
    • 2
    • 3
    • 4

    1.4.4 进行目录创建操作

    mkdir命令是由“make directories”中每个单词的粗体字母组合而成,其功能是创建目录。

    默认情况下,如果要创建的目录已经存在,则会提示文件存在,而不会继续创建目录。

    语法格式:

    mkdir [option] [directory]
    mkdir  选项      目录
    
    • 1
    • 2

    说明:mkdir命令可以同时创建多个目录,格式为mkdir dir1 dir2…

    常用参数:

    序号 参数选项 解释说明
    01 -p 01. 递归创建目录,递归的意思是父目录及子目录及子目录…一并创建
    02. 即使要创建的目录事先已存在,也不会报错提示目录存在
    02 -m 设置新创建目录的默认目录对应的权限(在权限章节说明)
    03 -v 显示创建目录的过程
    实践操作:

    实践操作-01:不使用任何命令参数创建目录的用法示例

    [root@xiaoQ ~]# cd ~
    [root@xiaoQ ~]# tree -d
    .
    ​
    0 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [root@xiaoQ ~]# mkdir data
    [root@xiaoQ ~]# tree -d
    .
    └── data
    ​
    1 directory
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [root@xiaoQ ~]# mkdir data
    mkdir: cannot create directory ‘data’: File exists
    
    • 1
    • 2

    — 创建的目录已经存在,默认会有错误提示信息

    [root@xiaoQ ~]# mkdir -p data
    
    • 1

    — 可以利用-p忽略错误提示信息

    实践操作-02:使用-p参数递归创建目录

    [root@xiaoQ ~]# mkdir xiaoQ/xiaoQ01/xiaoQ02
    mkdir: cannot create directory ‘xiaoQ/xiaoQ01/xiaoQ02’: No such file or directory
    [root@xiaoQ ~]# mkdir -p xiaoQ/xiaoQ01/xiaoQ02
    [root@xiaoQ ~]# tree -d
    .
    ├── data
    └── xiaoQ
        └── xiaoQ01
            └── xiaoQ02
    ​
    4 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    实践操作-03:加-v参数显示创建目录的过程

    [root@xiaoQ ~]# mkdir xiaoQ02
    [root@xiaoQ ~]# mkdir -v xiaoQ03
    mkdir: created directory ‘xiaoQ03’
    [root@xiaoQ ~]# tree -d
    .
    ├── data
    ├── xiaoQ
    │   └── xiaoQ01
    │       └── xiaoQ02
    ├── xiaoQ02
    └── xiaoQ03
    ​
    6 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    实践操作-04:批量创建目录需求

    创建多个无规则的目录信息

    [root@xiaoQ ~]# mkdir xiQ aoT iaZ 
    [root@xiaoQ ~]# tree -d
    .
    ├── aoT
    ├── iaZ
    └── xiQ
    ​
    3 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    创建多个有规则的目录信息

    [root@xiaoQ ~]# mkdir xiaoQ{01..03}
    [root@xiaoQ ~]# tree -d
    .
    ├── aoT
    ├── iaZ
    ├── xiaoQ01
    ├── xiaoQ02
    ├── xiaoQ03
    └── xiQ
    ​
    6 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    1.4.5 进行目录删除操作

    rm命令可以理解为英文单词remove的缩写,其功能是删除一个或多个文件或目录。

    强调:这是Linux系统里最危险的命令之一,请慎重使用。

    语法格式:

    rm [option] [file]
    rm  选项     文件或目录
    
    • 1
    • 2

    常用参数:

    序号 参数选项 解释说明
    01 -f 强制删除,忽略不存在的文件,不提示确认
    02 -i 在删除前需要确认
    03 -I 在删除超过三个文件或者递归删除前要求确认
    04 -r 递归删除目录及其内容(针对目录删除使用参数)
    实践操作:

    准备命令操作环境:

    [root@xiaoQ ~]# mkdir -p data/{dir01,dir02,dir03}
    [root@xiaoQ ~]# tree -d
    .
    └── data
        ├── dir01
        ├── dir02
        └── dir03
    ​
    4 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    实践操作-01:删除指定目录

    [root@xiaoQ ~]# rm data/dir01/ 
    rm: cannot remove ‘data/dir01/’: Is a directory
    [root@xiaoQ ~]# rm -r data/dir01/ 
    rm: remove directory ‘data/dir01/’? y
    [root@xiaoQ ~]# tree -d
    .
    └── data
        ├── dir02
        └── dir03
    ​
    3 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    实践操作-02:强制删除指定目录

    [root@xiaoQ ~]# rm -rf data/dir02
    [root@xiaoQ ~]# tree -d
    .
    └── data
        └── dir03
    ​
    2 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    1.4.6 进行目录改名操作

    mv命令可以理解为英文单词move的缩写,其功能是移动或重命名文件或目录信息。

    语法格式:

    mv [option] [source] [dest]
    mv  选项     源文件   目标文件
    ​
    mv [option] -t [dest] [source01] [source02] [source03]
    mv  选项       目标文件 源文件
    
    • 1
    • 2
    • 3
    • 4
    • 5

    常用参数:

    序号 参数选项 解释说明
    01 -f 若目标文件已经存在,则不会询问而是直接覆盖
    02 -i 若目标文件已经存在,则会询问是否覆盖(默认)
    03 -n 不覆盖已经存在的文件(安全功能)
    04 -t 指定mv的目标目录,适用于移动多个源文件到一个目录的情况
    此时目标目录在前,源文件在后
    05 -u 在源文件比目标文件新,或者目标文件不存在时才进行移动

    实践操作:

    准备命令操作环境:

    [root@xiaoQ ~]# mkdir -p data01/{dir01,dir02,dir03}
    [root@xiaoQ ~]# mkdir -p data02/{dir01,dir02,dir03}
    [root@xiaoQ ~]# tree -d
    .
    ├── data01
    │   ├── dir01
    │   ├── dir02
    │   └── dir03
    └── data02
        ├── dir01
        ├── dir02
        └── dir03
    ​
    8 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    实践操作-01:对目录名称信息进行改名

    [root@xiaoQ ~]# mv data01/dir01/ data01/xiaoQ01
    [root@xiaoQ ~]# tree -d
    .
    ├── data01
    │   ├── dir02
    │   ├── dir03
    │   └── xiaoQ01
    └── data02
        ├── dir01
        ├── dir02
        └── dir03
    ​
    8 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    [root@xiaoQ ~]# mv data01/dir02 data01/xiaoQ01/
    [root@xiaoQ ~]# tree -d
    .
    ├── data01
    │   ├── dir03
    │   └── xiaoQ01
    │       └── dir02
    └── data02
        ├── dir01
        ├── dir02
        └── dir03
    ​
    8 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    说明:在重命名目录时,如果修改目录名称已经存在,会将源目录移动到指定名称目录中

    实践操作-02:将单个目录进行剪切移动

    将目录移动到其它目录中(其它目录中已经存在此名称目录)

    [root@xiaoQ ~]# mv data01/dir03/ data02/
    mv: overwrite ‘data02/dir03’? 
    [root@xiaoQ ~]# mv -f data01/dir03/ data02/
    [root@xiaoQ ~]# tree -d
    .
    ├── data01
    │   └── xiaoQ01
    │       └── dir02
    └── data02
        ├── dir01
        ├── dir02
        └── dir03
    7 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    将目录移动到其它目录中(其它目录中没有存在此名称目录)

    [root@xiaoQ ~]# tree -d
    .
    ├── data01
    │   └── xiaoQ01
    │       └── dir02
    └── data02
        ├── dir01
        ├── dir02
        └── dir03
    ​
    7 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    [root@xiaoQ ~]# mv data01/xiaoQ01/ data02/
    [root@xiaoQ ~]# tree -d
    .
    ├── data01
    └── data02
        ├── dir01
        ├── dir02
        ├── dir03
        └── xiaoQ01
            └── dir02
    ​
    7 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    实践操作-03:将多个目录进行剪切移动

    [root@xiaoQ ~]# tree -d
    .
    ├── data01
    └── data02
        ├── dir01
        ├── dir02
        ├── dir03
        └── xiaoQ01
            └── dir02
    ​
    7 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    [root@xiaoQ ~]# mv data02/{dir01,dir02} data01
    [root@xiaoQ ~]# tree -d
    .
    ├── data01
    │   ├── dir01
    │   └── dir02
    └── data02
        ├── dir03
        └── xiaoQ01
            └── dir02
    ​
    7 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    [root@xiaoQ ~]# mv -t data01 data02/dir03 data02/xiaoQ01
    [root@xiaoQ ~]# tree -d
    .
    ├── data01
    │   ├── dir01
    │   ├── dir02
    │   ├── dir03
    │   └── xiaoQ01
    │       └── dir02
    └── data02
    ​
    7 directories
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    1.5 系统文件相关命令

    1.5.1 创建文件信息命令

    touch命令包含两个功能:一个是创建新的空文件;二是改变已有文件的时间戳属性(数据属性知识详细说明)

    语法格式:

    touch [option] [file]
    touch  选项     文件
    
    • 1
    • 2

    常用参数:

    序号 选项参数
    01 -a 只更改指定文件的最后访问时间
    02 -d STRING 使用字符串STRING代表时间作为模板设置指定文件的时间属性
    03 -m 只更改指定文件的最后修改时间
    04 -r file 将指定文件的时间属性设置为与模板文件file的时间属性相同
    05 -t STAMP 使用[[CC]YY]MMDDhhmm[.ss]格式的时间设置文件的时间属性。
    格式的含义从左到右依次为:世纪、年、月、日、时、分、秒
    实践操作:

    实践操作-01:创建单个文件信息

    [root@xiaoQ ~]# touch file01.txt
    [root@xiaoQ ~]# tree 
    .
    └── file01.txt
    ​
    0 directories, 1 file
    [root@xiaoQ ~]# ls 
    file01.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    实践操作-02:创建多个文件信息

    批量创建无规则文件信息

    [root@xiaoQ ~]# touch xiaoQ xiaoZ xiaoC
    [root@xiaoQ ~]# ls
    file01.txt  xiaoC  xiaoQ  xiaoZ
    
    • 1
    • 2
    • 3

    批量创建有规则文件信息

    [root@xiaoQ ~]# touch xiaoQ{01..10}
    [root@xiaoQ ~]# ls
    file01.txt  xiaoQ    xiaoQ02  xiaoQ04  xiaoQ06  xiaoQ08  xiaoQ10
    xiaoC       xiaoQ01  xiaoQ03  xiaoQ05  xiaoQ07  xiaoQ09  xiaoZ
    
    • 1
    • 2
    • 3
    • 4

    1.5.2 检查文件是否存在

    ls命令可以理解为英文单词list的缩写,其功能是列出目录的内容及其内容属性信息(list directory contents)。

    该命令有点类似于DOS系统下的dir命令,有趣的是Linux下其实也有dir命令,但企业常用数据信息查看命令是ls。

    语法格式:

    ls [option] [file]
    ls  选项   文件或目录
    
    • 1
    • 2

    说明:命令后面的目录或文件信息可以省略,表示查看当前路径下的文件或目录名称信息。

    常用参数:

    序号 参数选项 解释说明
    01 -l 使用长格式列出文件及目录信息 ※
    02 -a 显示目录下的所有文件,包含以“.”字符开始的隐藏文件 ※
    03 -t 根据最后的修改时间(mtime)进行排序
    默认是以文件名进行排序
    04 -r 依相反顺序排序
    05 -F 在条目后加上文件类型的指示符号(*、/、=、@、|)。
    06 -p 只在目录后面加上 /
    07 -i 显示inode节点信息
    08 -d 当遇到目录时,列出目录本身而非目录内的文件
    并且不跟随符号链接 ※
    09 -h 以人类可读的信息显示文件或目录的大小,如(1k 234M 2G)
    10 -A 列出所有文件,包含隐藏文件,但不包含“.”与“…”这两个目录
    11 -S 根据文件大小进行排序
    12 -R 递归列出所有子目录
    13 -x 逐行列出项目而不是逐栏列出
    14 -X 根据扩展名排序
    15 -c 根据状态改变时间(ctime)排序
    16 -u 根据最后访问时间(atime)排序
    17 --color={never,always,auto} 不同的文件类型显示颜色参数
    · never表示不显示
    · always表示总是显示
    · auto表示自动显示
    18 --full-time 以完整的时间格式输出
    19 --time-style={full-iso,long-iso,locale} 以不同的时间格式输出,long-iso效果最好
    20 --time={atime,ctime} 按不同时间属性输出
    · atime表示按访问时间
    · ctime表示按改变权限属性时间
    如果不加此参数则默认为最后修改的时间。

    说明:ls命令参数选项过于功能繁杂,建议可以按照知识章节重点,分阶段进行掌握记忆。

    实践操作:

    准备命令操作环境:

    [root@xiaoQ ~]# mkdir test
    [root@xiaoQ ~]# cd test
    [root@xiaoQ test]# touch file1.txt file2.txt file3.txt
    [root@xiaoQ test]# mkdir dir1 dir2 dir3
    
    • 1
    • 2
    • 3
    • 4

    实践操作-01:直接执行ls命令,不带任何参数信息

    [root@xiaoQ test]# ls
    dir1  dir2  dir3  file1.txt  file2.txt  file3.txt
    
    • 1
    • 2

    实践操作-02:显示所有文件,特别是要显示隐藏文件

    [root@xiaoQ test]# ls -a 
    .  ..  dir1  dir2  dir3  file1.txt  file2.txt  file3.txt  .xiaoQ01  .xiaoQ02
    
    • 1
    • 2

    实践操作-03:显示系统数据信息详细属性信息

    [root@xiaoQ test]# ls -l
    total 0
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir1
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir2
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir3
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file1.txt
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file2.txt
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file3.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    实践操作-04:显示指定目录名称信息和属性信息

    [root@xiaoQ test]# ls -ld dir1
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir1
    
    • 1
    • 2

    1.5.3 查看文件数据信息

    cat命令可以理解为英文单词concatenate的缩写,其功能是连接多个文件并且打印到屏幕输出。

    此命令常用于显示单个文件内容,或者将几个文件内容连接起来一起显示。

    语法格式:

    cat [option] [file]
    cat  选项     文件
    
    • 1
    • 2

    常用参数:

    序号 参数选项 解释说明

    01	-n	从第一行开始对所有输出的内容按行编号
    02	-b	与-n选项功能类似,但忽略显示空白行行号
    03	-s	当遇到有连续的两行以上的空白行,就替换为一行空白行
    04	-E	在每一行的行尾显示$符号
    
    • 1
    • 2
    • 3
    • 4

    实践操作:

    准备命令操作环境:

    提前在windows主机中准备好一个测试cat命令功能的文件,并将文件上传到系统中

    [root@xiaoQ ~]# cat test-cat.txt
    welcome to my Linux class
    ​
    if you like my class contents,pls support me
    ​
    ​
    ​
    bye! boys and girls
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    实践操作-01:直接执行cat命令查看文件内容,不带任何选项。

    [root@xiaoQ ~]# cat test-cat.txt 
    welcome to my Linux class
    ​
    if you like my class contents,pls support me
    ​
    ​
    ​
    bye! boys and girls
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    实践操作-02:使用-n、-b、-s选项,并对比三者之间的区别

    使用-n参数显示文件行号信息

    [root@xiaoQ ~]# cat -n test-cat.txt 
         1  welcome to my Linux class
         2  
         3  if you like my class contents,pls support me
         4  
         5  
         6  
         7  bye! boys and girls
         8  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9


    使用-b参数显示文件行号信息

    [root@xiaoQ ~]# cat -b test-cat.txt 
         1  welcome to my Linux class
    ​
         2  if you like my class contents,pls support me
    ​
    ​
    ​
         3  bye! boys and girls
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8


    使用-s参数显示文件行号信息

    [root@xiaoQ ~]# cat -s test-cat.txt 
    welcome to my Linux class
    ​
    if you like my class contents,pls support me
    ​
    bye! boys and girls
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    实践操作-03:显示文件结尾的$信息

    [root@xiaoQ ~]# cat -E test-cat.txt 
    welcome to my Linux class$
    $
    if you like my class contents,pls support me$
    $
    $
    $
    bye! boys and girls$
    $
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    说明:其实在Linux系统中还有很多命令可以实现文件数据信息的输出,例如 more less head tail grep…

    相关命令会在后面Linux云计算课程中进行介绍。

    1.5.4 拷贝文件数据信息

    cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录。

    语法格式:

    cp [option] [source] [dest]
    cp  选项     源文件   目标文件
    
    • 1
    • 2

    常用参数:

    序号 参数选项 解释说明

    • -p 复制文件时保持源文件的所有者、权限信息以及时间属性
    • -r 递归复制目录,即复制目录下的所有层级的子目录及文件
    • -i 在覆盖已有文件前提示用户确认(默认参数)
    • -t 默认情况下命令格式是“cp 源文件 目标文件”,使用-t参数可以颠倒顺序

    格式为 cp -t 目标信息 源信息

    实践操作-01:无参数和带参数-p的比较区别

    [root@xiaoQ test]# ls -l
    total 0
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir1
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir2
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir3
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file1.txt
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file2.txt
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file3.txt
    [root@xiaoQ test]# cp file1.txt file4.txt
    [root@xiaoQ test]# cp -p file1.txt file5.txt
    [root@xiaoQ test]# ls -l
    total 0
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir1
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir2
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir3
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file1.txt  --- 原有文件信息
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file2.txt
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file3.txt
    -rw-r--r--. 1 root root 0 Nov 25 00:48 file4.txt  --- 不加-p文件时间属性信息会发生变化
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file5.txt  --- 加上-p文件时间属性信息未发生变化
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    说明:企业生产环境中在备份数据时,一般都会加上-p参数进行备份

    实践操作-02:实现将目录信息进行复制

    [root@xiaoQ test]# ls -l
    total 0
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir1
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir2
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir3
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file1.txt
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file2.txt
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file3.txt
    -rw-r--r--. 1 root root 0 Nov 25 00:48 file4.txt
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file5.txt
    [root@xiaoQ test]# cp dir1 dir_bak
    cp: omitting directory ‘dir1’
    [root@xiaoQ test]# cp -rp dir1 dir_bak
    [root@xiaoQ test]# ls -l
    total 0
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir1
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir2
    drwxr-xr-x. 2 root root 6 Nov 24 23:31 dir3
    drwxr-xr-x. 2 root root 6 Nov 25 00:52 dir_bak
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file1.txt
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file2.txt
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file3.txt
    -rw-r--r--. 1 root root 0 Nov 25 00:48 file4.txt
    -rw-r--r--. 1 root root 0 Nov 24 23:31 file5.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    实践操作-03:利用-t参数实现数据备份保存

    [root@xiaoQ test]# cp -t dir1/ file1.txt
    [root@xiaoQ test]# tree 
    .
    ├── dir1
    │   └── file1.txt
    ├── dir2
    ├── dir3
    ├── dir_bak
    ├── file1.txt
    ├── file2.txt
    ├── file3.txt
    ├── file4.txt
    └── file5.txt
    ​
    4 directories, 6 files
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    1.5.5 移动剪切数据信息

    mv命令可以理解为英文单词move的缩写,其功能是移动或重命名文件或目录信息。

    语法格式:

    mv [option] [source] [dest]
    mv  选项     源文件   目标文件
    ​
    mv [option] -t [dest] [source01] [source02] [source03]
    mv  选项       目标文件 源文件
    
    • 1
    • 2
    • 3
    • 4
    • 5

    常用参数:

    序号 参数选项 解释说明

    • -f 若目标文件已经存在,则不会询问而是直接覆盖
    • -i 若目标文件已经存在,则会询问是否覆盖(默认)
    • -n 不覆盖已经存在的文件(安全功能)
    • -t 指定mv的目标目录,适用于移动多个源文件到一个目录的情况 此时目标目录在前,源文件在后
    • -u 在源文件比目标文件新,或者目标文件不存在时才进行移动

    实践操作:

    实践操作-01:对文件进行改名操作

    [root@xiaoQ test]# mv file1.txt file6.txt
    [root@xiaoQ test]# ls -l
    total 0
    drwxr-xr-x. 2 root root 23 Nov 25 01:09 dir1
    drwxr-xr-x. 2 root root  6 Nov 24 23:31 dir2
    drwxr-xr-x. 2 root root  6 Nov 24 23:31 dir3
    drwxr-xr-x. 2 root root  6 Nov 24 23:31 dir_bak
    -rw-r--r--. 1 root root  0 Nov 24 23:31 file2.txt
    -rw-r--r--. 1 root root  0 Nov 24 23:31 file3.txt
    -rw-r--r--. 1 root root  0 Nov 25 01:04 file4.txt
    -rw-r--r--. 1 root root  0 Nov 24 23:31 file5.txt
    -rw-r--r--. 1 root root  0 Nov 24 23:31 file6.txt
    [root@xiaoQ test]# mv file2.txt file6.txt   --- 重命名的文件是否和目录中已存在的文件名称产生冲突
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    mv: overwrite ‘file6.txt’? 
     
    
    • 1
    • 2

    实践操作-02:将文件移动到其它目录

    [root@xiaoQ test]# mv file6.txt dir1
    [root@xiaoQ test]# mv -t dir1 file5.txt 
    [root@xiaoQ test]# tree 
    .
    ├── dir1
    │   ├── file1.txt
    │   ├── file5.txt
    │   └── file6.txt
    ├── dir2
    ├── dir3
    ├── dir_bak
    ├── file2.txt
    ├── file3.txt
    └── file4.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    1.5.6 删除文件数据操作

    rm命令可以理解为英文单词remove的缩写,其功能是删除一个或多个文件或目录。

    强调:这是Linux系统里最危险的命令之一,请慎重使用。

    语法格式:

    rm [option] [file]
    rm  选项     文件或目录
    rm -f file  强制删除
    
    • 1
    • 2
    • 3

    常用参数:

    序号 参数选项 解释说明

    01	-f	强制删除,忽略不存在的文件,不提示确认
    02	-i	在删除前需要确认
    03	-I	在删除超过三个文件或者递归删除前要求确认
    04	-r	递归删除目录及其内容(针对目录删除使用参数)
    
    • 1
    • 2
    • 3
    • 4

    实践操作:

    实践操作-01:将指定文件信息进行删除

    [root@xiaoQ test]# rm file2.txt
    rm: remove regular empty file ‘file2.txt’?
    [root@xiaoQ test]# rm -f file2.txt
    [root@xiaoQ test]# ls -l
    total 0
    drwxr-xr-x. 2 root root 57 Nov 25 01:19 dir1
    drwxr-xr-x. 2 root root  6 Nov 24 23:31 dir2
    drwxr-xr-x. 2 root root  6 Nov 24 23:31 dir3
    drwxr-xr-x. 2 root root  6 Nov 24 23:31 dir_bak
    -rw-r--r--. 1 root root  0 Nov 24 23:31 file3.txt
    -rw-r--r--. 1 root root  0 Nov 25 01:04 file4.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    如有侵权,请联系删除!

  • 相关阅读:
    深入解析JVM G1 垃圾回收器
    elementUI加springboot实现上传excel文件给后端并读取excel
    Leetcode79单词搜索
    【liunx】yum&&vim
    前端工作日常
    《中国垒球》:晋级决赛·剑指冠军
    栈与队列2:用队列实现栈
    20.8 OpenSSL 套接字SSL传输文件
    创建commons和cart模块
    线程池指令系统
  • 原文地址:https://blog.csdn.net/weixin_44202489/article/details/126073195