美文网首页Linux学习之路
day04 oldboy Linux基础命令

day04 oldboy Linux基础命令

作者: whykm | 来源:发表于2020-03-18 14:37 被阅读0次

    4.系统文件管理

    *1.文件管理之: 创建/复制/移动/删除*
    *----------------------------------------创建----------------------------------------*

    1.文件创建命令touch

    # touch file                    #无则创建,有则修改时间
    # touch file2 file3
    # touch /home/od/file4 file5
    # touch file{a,b,c}             #{}集合,等价 touch a b c
    # touch file{1..10}
    # touch file{a..z}
    

    2.目录创建命令mkdir

    # 选项:-v 显示详细信息  -p 递归创建目录
    # mkdir dir1
    # mkdir /home/od/dir1 /home/od/dir2
    # mkdir -v /home/od/{dir3,dir4} 
    # mkdir -pv /home/od/dir5/dir6
    # mkdir -pv /home/{od/{diu,but},boy}
    

    3.以树状显示目录结构命令tree

    # 选项: -L: 显示目录树的层级
    # tree /home/od/    #显示当前目录下的结构
    /home/od/
    ├── but
    ├── dir1
    ├── dir2
    ├── dir3
    ├── dir4
    ├── dir5
    │   └── dir6
    └── diu
    

    *----------------------------------------cp复制----------------------------------------*

    #选项: -v:详细显示命令执行的操作 -r: 递归处理目录与子目录 -p: 保留源文件或目录的属性
    
    # cp file /tmp/file_copy
    # cp name /tmp/name         #不修改名称
    # cp file /tmp/             #不修改名称
    # cp -p file /tmp/file_p    #-p保持原文件或目录的属性
    # cp -r  /etc/ /tmp/        #复制目录需要使用-r参数, 递归复制
    # cp -rv /etc/hosts /etc/hostname /tmp  #拷贝多个文件至一个目录
    # cp -rv /etc/{hosts,hosts.bak}
    # cp -rv /etc/hosts{,-org}
    

    *----------------------------------------mv移动----------------------------------------*

    # mv file file1             #原地移动算改名
    # mv file1 /tmp/            #移动文件至tmp目录
    # mv /tmp/file1 ./          #移动tmp目录的文件至当前目录
    # mv dir/ /tmp/             #移动目录至/tmp目录下
    
    # touch file{1..3}
    # mv file1 file2 file3 /opt/    #移动多个文件或至同一个目录
    
    # mkdir dir{1..3}
    # mv dir1/ dir2/ dir3/ /opt     #移动多个目录至同一个目录
    

    *----------------------------------------rm删除----------------------------------------*

    #选项:-r: 递归 -f: 强制删除 -v: 详细过程
    # rm  file.txt      #删除文件, 默认rm存在alias别名,rm -i所以会提醒是否删除文件
    # rm -f file.txt    #删除文件, 不提醒
    --------------------------------
    # rm -r dir/        #递归删除目录,会提示
    # rm -rf dir/       #强制删除目录,不提醒(慎用)
    --------------------------------
    #1.rm删除示例
    # mkdir /home/dir10
    # touch /home/dir10/{file2,file3,.file4}
    # rm -f /home/dir10/*  //不包括隐藏文件 
    # ls /home/dir10/ -a
    . .. .file4
    --------------------------------
    #2.rm删除示例2
    # touch file{1..10}
    # touch {1..10}.pdf
    # rm -rf file* 
    # rm -rf *.pdf
    

    *2.文件管理之:查看文件内容(cat tac less more head tail tailf grep ...)*

    #------cat
    # cp /etc/passwd ./pass
    # cat pass      #正常查看文件方式
    # cat -n pass   #-n显示文件有多少行
    # cat -A pass   #查看文件的特殊符号,比如文件中存在tab键
    # tac pass      #倒序查看文件
    
    #------less、more
    # less /etc/services    #使用光标上下翻动,空格进行翻页,q退出
    # more /etc/services    #使用回车上下翻动,空格进行翻页,q退出
    
    #------head
    # head pass     #查看头部内容,默认前十行
    # head -n5 pass #查看头部5行,使用-n指定
    
    #------tail
    # tail pass
    # tail -20 /var/log/secure
    # tail -f /var/log/messages #-f查看文件尾部的变化
    # tailf /var/log/messages   #查看文件尾部的变化
    
    #------grep过滤文件内容
    # grep "^root" pass     #匹配以root开头的行
    # grep "bash$" pass     #匹配以bash结尾的行
    # grep -i "ftp" pass    #忽略大小写匹配
    # grep  -Ei "sync$|ftp" pass    #匹配文件中包含sync结尾或ftp字符串
    # grep -n -A 2 "Failed" /var/log/secure #匹配/var/log/secure文件中Failed字符串,并打印它的下2行
    # grep -n -B 2 "Failed" /var/log/secure #匹配/var/log/secure文件中Failed字符串,并打印它的上2行
    # grep -n -C 2 "Failed" /var/log/secure #匹配/var/log/secure文件中Failed字符串,并打印它的上下2行
    

    *3.文件管理之:联网下载文件(wget、curl)、文件上传与下载(rz、sz)*

    *----------------------------------------wget、curl联网下载文件----------------------------------------*

    #选项: -O: 指定下载地址
    # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
    #选项: -o: 指定下载地址
    # curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    

    *----------------------------------------rzsz上传下载文件----------------------------------------*

    # yum install lrzsz -y  #不安装软件则无法执行该命令
    如果无法将文件直接拖拽进linux服务器,要么没有安装lrzsz,则可用上面命令进行安装;要么是上传的是一个空文件
    
    # rz    #只能上传文件文件上传,不支持上传文件夹,不支持上传大于4G,也不支持断点续传
    # sz /path/file #只能下载文件(任意单个文件),不支持文件夹下载
    

    *4.文件管理之:文件或命令查找(locate、which、whereis、find)*

    *----------------------------------------文件查找----------------------------------------*

    # locate /etc/sh       #搜索etc目录下所有以sh开头的文件
    # locate -i /etc/sh    #搜索etc目录下,所有以sh开头的文件,忽略大小写
    

    *----------------------------------------命令查找----------------------------------------*

    # which ls  #查找ls命令的绝对路径
    
    # whereis ls       //查找命令的路径、帮助手册、等
    # whereis -b ls    //仅显示命令所在的路径
    
    # type -a ls        #查看命令的绝对路径(包括别名)
    

    *5.文件管理之:文件内容处理命令(sort、uniq、cut、sed、awk、wc、)*

    *----------------------------------------sort排序----------------------------------------*

    在有些情况下,需要对应一个无序的文本文件进行数据的排序,这时就需要使用sort进行排序了。

    sort [OPTION]... [FILE]...
    # -r:倒序 -n:按数字排序 -t:指定分隔符(默认空格) -k:指定第几列, 指定几列几字符(指定1,1  3.1,3.3)
    
    #1.首先创建一个文件,写入一写无序的内容
    [root@xuliangwei ~]# cat >> file.txt <<EOF
    b:3
    c:2
    a:4
    e:5
    d:1
    f:11
    EOF
    
    #2.使用sort下面对输出的内容进行排序
    [root@xuliangwei ~]# sort file.txt
    a:4
    b:3
    c:2
    d:1
    e:5
    f:11
    
    #结果并不是按照数字排序,而是按字母排序。
    #可以使用-t指定分隔符, 使用-k指定需要排序的列。
    [root@xuliangwei ~]# sort -t ":" -k2 sort.txt
    d:1
    f:11 #第二行为什么是11?不应该按照顺序排列?
    c:2
    b:3
    a:4
    e:5
    
    #按照排序的方式, 只会看到第一个字符,11的第一个字符是1, 按照字符来排序确实比2小。 
    #如果想要按照数字的方式进行排序, 需要使用 -n参数。
    [root@xuliangwei ~]# sort -t ":" -n -k2 p.txt
    d:1
    c:2
    b:3
    a:4
    e:5
    f:11
    
    
    #测试案例,下载文件http://fj.xuliangwei.com/public/ip.txt,对该文件进行排序
    [root@xuliangwei ~]# sort -t. -k3.1,3.1nr -k4.1,4.3nr ip.txt    #及其特殊的用法
    

    *----------------------------------------uniq去重----------------------------------------*
    如果文件中有多行完全相同的内容,当前是希望能删除重复的行,同时还可以统计出完全相同的行出现的总次数, 那么就可以使用uniq命令解决这个问题(但是必须配合sort使用)。

    uniq [OPTION]... [INPUT [OUTPUT]]
    #选项:-c  计算重复的行
    
    #1.创建一个file.txt文件:
    [root@xuliangwei ~]# cat file.txt
    abc
    123
    abc
    123
    #2.uniq需要和sort一起使用, 先使用sort排序, 让重复内容连续在一起
    [root@xuliangwei ~]# cat file.txt |sort
    123
    123
    abc
    abc
    #3.使用uniq去除相邻重复的行
    [root@xuliangwei ~]# cat file.txt |sort|uniq
    123
    abc
    #4.-c参数能统计出文件中每行内容重复的次数
    [root@xuliangwei ~]# cat file.txt |sort|uniq -c
          2 123
          2 abc
    

    *----------------------------------------cut截取字段----------------------------------------*

    cut OPTION... [FILE]...
    #选项:-d 指定分隔符 -f 数字,取第几列 –f3,6三列和6列 -c 按字符取(空格也算)
    #echo "Im xlw, is QQ 552408925" >file.txt   #过滤出文件里 xlw以及552408925
    
    #实现上述题目几种思路
    # cut -d " " -f2,5 file.txt
    # cut -d " " -f2,5 file.txt |sed 's#,##g'
    # sed 's#,# #g' file.txt | awk -F " " '{print $2 " " $5}'
    # awk  '{print $2,$5}' file.txt |awk -F ',' '{print $1,$2}'
    # awk -F  "[, ]" '{print $2,$6}' file.txt
    # awk -F '[, ]+' '{print $2,$5}' file.txt
    

    *----------------------------------------wc统计行号----------------------------------------*

    wc [OPTION]... [FILE]...
    #选项:-l显示文件行数 -c显示文件字节 -w显示文件单词
    
    # wc -l /etc/fstab      #统计/etc/fstab文件有多少行
    # wc -l /etc/services   #统计/etc/services 文件行号
    
    
    #扩展方法
    # grep -n ".*" /etc/services  | tail -1
    # awk '{print NR $0}' /etc/services | tail -1
    # cat -n /etc/services  | tail -1
    

    习题: 分析如下日志,统计每个域名被访问的次数。

    [root@student tmp]# cat web.log 
    http://www.xuliangwei.com/index.html
    http://www.xuliangwei.com/1.html
    http://post.xuliangwei.com/index.html
    http://mp3.xuliangwei.com/index.html
    http://www.xuliangwei.com/3.html
    http://post.xuliangwei.com/2.html
    
    # awk -F '/' '{print $3}' web.log|sort -rn|uniq –c
    # cut -d / -f3 web.log|sort -rn|uniq –c
    

    相关文章

      网友评论

        本文标题:day04 oldboy Linux基础命令

        本文链接:https://www.haomeiwen.com/subject/hmemrhtx.html