python课程总结day19

今日内容

Linux系统的目录结构

windows系统       Linux系统
文件夹--------》  目录

根目录:顶级目录

Windows系统:多根结构
    C:a\b\c\d.txt
    D:xxx\yyy\zzz\1.txt
        
linux系统:单根结构
    /a/b/c/d.txt
    

绝对路径与相对路径

绝对路径: 从/开头的路径 /home ~alice 
相对路径: 相对于当前目录开始

. 链接到当前目录 
.. 链接到上一级目录 
~ 当前用户的家目录

# 1、绝对路径示例
touch /home/alice/file1
touch ~alice/file2
# 2、相对路径示例
touch ../file3
touch file4
touch abc/file5

从根开始写的路径就是绝对路径(无论你当前在哪,都能具体的找到这个文件,就是写起来太长太啰嗦),否则就是相对路径(找文件时有局限性,但写起来就比较简单一点) 

系统目录结构与作用

root用户的家目录: /root
普通用户的家目录: /home/egon

配置文件目录:
/etc/sysconfig/network-scripts/ifcfg-*   网络配置文件
/etc/resolv.conf   dns客户端配置文件
/etc/hosts   本地域名解析配置问价
/etc/fstab   系统挂载目录文件 开机自动启动挂载列表
/etc/passwd   系统用户文件

修改主机名:
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# cat /etc/hostname 
localhost.localdomain
[root@localhost ~]# 
[root@localhost ~]# hostnamectl set-hostname www
[root@localhost ~]# hostname
www
[root@localhost ~]# cat /etc/hostname 
www
[root@localhost ~]# 

文件处理基础命令

#1、查看当前所在的目录
[root@localhost ~]# pwd
/root

#2、切换目录
cd  绝对路径    如:cd /home/alice     cd ~alice
cd  相对路径    如:cd home/alice      cd ..

cd -      # 返回上次目录  
cd        # 直接回家,等同于cd ~
cd .      #保持当前目录不变
cd ..     #切换到当前目录的上一级目录

#3、查看目录树:需要先安装tree命令,执行yum install tree -y
tree -a 目录    # 显示所有文件,包括隐藏文件
tree -d 目录    # 只显示子目录
tree -L 1 目录  # -L 遍历目录的最大层数,-L后应该是大于0的正整数
tree -F 目录    # -F 在条目后加上文件类型的指示符号,例如会在显示出的目录后面加上左斜杠/

[root@localhost ~]# tree /a 
[root@localhost sysconfig]# mkdir /a
[root@localhost sysconfig]# mkdir /a/b
[root@localhost sysconfig]# mkdir /a/bb
[root@localhost sysconfig]# mkdir /a/bbb
[root@localhost sysconfig]# ls /a
b  bb  bbb
[root@localhost sysconfig]# touch /a/b/1.txt
[root@localhost sysconfig]# touch /a/b/2.txt
[root@localhost sysconfig]# touch /a/b/3.txt
[root@localhost sysconfig]# 
[root@localhost sysconfig]# touch /a/bb/a.txt
[root@localhost sysconfig]# touch /a/bb/b.txt
[root@localhost sysconfig]# touch /a/bb/c.txt
[root@localhost sysconfig]# tree /a
/a
├── b
│   ├── 1.txt
│   ├── 2.txt
│   └── 3.txt
├── bb
│   ├── a.txt
│   ├── b.txt
│   └── c.txt
└── bbbb

了解一下tree命令其他选项
-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

#4、浏览
ls        # 默认浏览当目录
ls -l 目录 # 浏览目录下的子目录子文件名的详细信息
ls -al 目录 # 浏览的结果中包含隐藏文件
ls -dl 目录 # 查看目录

文件类型
格式         说明
-            普通文件(文本, 二进制, 压缩包, 图片, 日志等)   
d            目录文件
b            设备文件(块设备)存储设备硬盘    /dev/sda1,    /dev/sda2
c            设备文件(字符设备)打印机,终端    /dev/tty1,    /dev/zero
s            套接字文件,    进程间通信(socket)
p            管道文件
l            链接文件

文件的创建、复制、移动、删除

  • 创建

#1、=============创建文件:touch  
touch file1.txt             //无则创建,有则修改时间
touch /home/file10.txt
touch file{1..20}
touch Ego{n,N}.txt     //等价touch Egon.txt EgoN.txt
touch -t 2011111111 2018.rmvb 
修改文件时间 语法:
-t STAMP
              use [[CC]YY]MMDDhhmm[.ss] instead of current time
    
了解文件的三个时间参数:https://www.cnblogs.com/linhaifeng/articles/13324247.html

#2、=============创建目录:mkdir  
mkdir dir1
mkdir /home/dir2 /home/dir3
mkdir /home/{dir4,dir5}
mkdir -v /home/{dir6,dir7}
    mkdir: 已创建目录 “/home/dir6”
    mkdir: 已创建目录 “/home/dir7”
mkdir -p /home/dir8/111/222     //包括其父母的创建
  • 复制

    #1、=============复制:cp   
    cp 源 目标
    
    cp -v install.log /home/dir1
    cp -v install.log /home/dir1/aaa.txt
    cp -r /etc /home/dir1
    cp install.log /home/dir2
    cp anaconda-ks.cfg !$
    cp anaconda-ks.cfg /home/dir2
    cp -r /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/passwd /etc/grub.conf /etc/hosts .
    
    cp -rv /etc /tmp
    \cp -rv /etc /tmp
    
  • 移动与删除

    #1、=============复制:mv   
    mv 源 目标
    # mv file2 /home/dir3   将file2移动到/home/dir3里
    # mv file4 file5                将file4重命名为file5,当前位置里的移动就是重命名
    
    #2、=============复制:rm
    示例:删除/home/dir1       
    # cd /home
    # rm -rf dir1       
    -r 递归
    -f force强制
    -v 详细过程
    

    查看文件内容

    ==文本文件 (cat less more head tail grep)
    /etc/hosts
    /etc/sysconfig/network
    /etc/sysconfig/network-scripts/ifcfg-eth0
    /etc/passwd
    /etc/shadow 
    /etc/group
    /etc/grub.conf
    /etc/resolv.conf
    /var/log/messages   //系统的主日志文件
    
    cat     
    -n  #显示行号  (-3 查看前三行;若不指定则默认查看前十行)
    -A  #包括控制字符(换行符)linux $  Windows ^M$
    
    less  more head  tail  
    # head  /etc/passwd    //默认查看前十行
    # head -2 /etc/passwd   //查看前两行
    # tail /etc/passwd    //默认查看末尾后十行
    # tail -1 /etc/passwd   //查看末尾最后一行
    
    # more /etc/passwd  # 使用more命令之后,每次在屏幕上显示一屏(一页)的文件内容,并且在屏幕的尾部将会出现“—More--(n%)”的信息,其中,n%是已经显示文件内容的百分比。按空格下一页,按b上一页,more +40 a.txt从第40行开始查看
    
    # tail -f /var/log/messages             //-f 动态查看文件的尾部
    # logger xxxxxxxxx                      //手动产生日志信息
    

    vim三种模式介绍

    #1、命令行模式:在编辑模式下按下ESC键返回命令行模式。
    vi的默认模式。在这一模式中,所有的输入被解释成vi命令,可以执行修改、复制、移动、粘贴和删除正文等命令,也可以进行移动光标、搜索字符串和退出vi的操作等。
    
    #2、编辑/插入模式:输入a、i、o之一
    在编辑模式中,可以往一个文件中输入正文。在这一模式下,输入的每一个字符都被vi编辑器解释为输入的正文。使用ESC键返回命令行模式。
    a:进入插入模式并在光标之后进行添加。
    i:进入插入模式并在光标之前进行插入。
    o:进入插入模式并在当前(光标所在)行之下开启新的一行。
    
    #3、扩展/末行模式:输入冒号:
    在一些UNIX系统上也叫最后一行模式。在这一模式下,可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器等。要进入最后一行模式,需要在命令行模式中输入冒号(:),冒号这一操作将把光标移到屏幕的最后一行。
    

    vim命令行模式命令介绍

    vi ===> vim 文件编辑器
    # vim /boot/grub2/grub.cfg
    # vim /etc/sysconfig/network-scripts/ifcfg-eth0
    
    命令模式:
        a. 光标定位 
            hjkl  
            0 $ 
            gg G  
            3G      进入第三行 
            /string(n N 可以循环的)  快速定位到某一行  
                      
        b. 文本编辑(少量)
            y       复制  yy 3yy  ygg  yG (以行为单位)
            d       .删除 dd 3dd dgg  dG      (以行为单位) 
            p       粘贴
            x       删除光标所在的字符
            D       从光标处删除到行尾
            u       undo撤销
            ^r      redo重做
             r      可以用来修改一个字符
        
        c. 进入其它模式
            a       进入插入模式
            i       进入插入模式
            o       进入插入模式
            A       进入插入模式
            
            :       进入末行模式
            ^v  进入可视块模式
            R   进入替换模式
            
    
    插入模式:
            ^p  唯一补齐
    
    
    末行模式:
        a. 保存退出
            :10 进入第10行   
            :w      保存   
            :q      退出    
            :wq     保存并退出      
            :w!     强制保存    
            :q!     不保存并退出       
            :wq!    强制保存退出
            :x      保存并退出
            
        b. 查找替换
            :范围 s/old/new/选项        
            :1,5 s/Note/yyy/                从1-5行的Note 替换为yyy   
            :5,$ s/Note/yyy/                $表示最后一行
            :1,$ s/to/xxx/g     =    :% s/to/xxx/g    %表示全文  g表示全局
            :4,9 s/^#//                         4-9行的以#开头的替换为空
            :% s#/dev/sda#/var/ccc#g
            :,8 s/to/xxx/           从当前行到第8行
            
        c. 读入文件/写文件
            :w
            :w /aaa.txt                         另存为/aaa.txt  
            :1,3 w /2.txt
            :1 w! /root/ccc.txt  如果目标文件已经存在则需要加!号
            :r /etc/hosts
    
        d. 设置环境     
            临时设置:       
            :set nu                                 设置行号      
            :set ic                                 不区分大小写
            :set ai                             自动缩进
            :set list
            :set nonu                       取消设置行号     
            :set noic
    
            永久的环境:
            /etc/vimrc                      影响所有系统用户
            ~/.vimrc                    影响某一个用户
            # vim ~/.vimrc  # 在家目录下新增一个文件,输入下述内容
            set ic
            set nu
    
    # vim -O /etc/hosts /etc/grub.conf      ^w 按两次切换
    # vimdiff grub.conf /etc/grub.conf      对比文件,^w 按两次切换       
    # vim -p /etc/hosts /etc/grub.conf      ^PgUp, ^PgDn
    
posted @ 2021-06-23 21:35  一博女孩  阅读(44)  评论(0)    收藏  举报