zoukankan      html  css  js  c++  java
  • linux系统常用命令

    第1章    系统命令

    1.1   echo 命令

     echo  输出内容到屏幕或者文件中

                     >  输出重定向     先清空在写入

                 >>  追加输出重定向 不清空追加到文件的底部

                 -e  激活特殊的含义

                    tab

                   回车

          

              [root@oldboyedu-lnb ~]# echo oldboyedu
    
              oldboyedu
    
              [root@oldboyedu-lnb ~]# echo oldboyedu > 1.txt
    
              [root@oldboyedu-lnb ~]# cat 1.txt
    
              oldboyedu
    
              [root@oldboyedu-lnb ~]# echo oldboyedu >> 1.txt
    
              [root@oldboyedu-lnb ~]#
    
              [root@oldboyedu-lnb ~]# cat 1.txt
    
              oldboyedu
    
              oldboyedu
    
              
     回车换行
    
              [root@oldboyedu-lnb ~]# echo -e "oldboy
    alex
    lidao" >> 1.txt
    
              [root@oldboyedu-lnb ~]#
    
              [root@oldboyedu-lnb ~]# cat 1.txt
    
              oldboyedu
    
              oldboyedu
    
              oldboy alex lidao
    
              oldboy
    
              alex
    
              lidao
    
              	  插入tab制表符
    
              [root@oldboyedu-lnb ~]# echo -e "oldboy	alex	lidao" >> 1.txt
    
              [root@oldboyedu-lnb ~]# cat 1.txt
    
              oldboyedu
    
              oldboyedu
    
              oldboy alex lidao
    
              oldboynalexnlidao
    
              oldboynalexnlidao
    
              oldboy
    
              alex
    
              lidao
    
              oldboy    alex    lidao
    

    1.1.1  输出规范的数字 序列

       {}  序列       大部分的命令都可以直接调用序列

     [root@oldboyedu-lnb ~]# echo {1..5}
    1 2 3 4 5
     [root@oldboyedu-lnb ~]# echo {01..5}
    01 02 03 04 05
    

    1.1.2   使用序列创建目录

    [root@oldboyedu-lnb ~]# echo {1..3}
    
     1 2 3
    [root@oldboyedu-lnb ~]# mkdir {1..3}
    [root@oldboyedu-lnb ~]# ll
     total 28
    drwxr-xr-x.  2 root root    6 Jul 30 08:22 1
    drwxr-xr-x.  2 root root    6 Jul 30 08:22 2
    drwxr-xr-x.  2 root root    6 Jul 30 08:22 3
    

    1.1.3  序列中的逗号 输出不连续的数字或者字符串

      [root@oldboyedu-lnb oldboy]# echo {a..z}
    
      a b c d e f g h i j k l m n o p q r s t u v w x y z
    
      [root@oldboyedu-lnb oldboy]# echo {A..Z}
    
      A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
    
      [root@oldboyedu-lnb oldboy]# echo {a..e}
    
      a b c d e
    
     [root@oldboyedu-lnb oldboy]# echo {a,c,d}
    
      a c d
    

    1.1.4  使用字符串创建目录

     [root@oldboyedu-lnb oldboy]# mkdir oldboyedu alexdsx ld
     [root@oldboyedu-lnb oldboy]# ll
     total 0
     drwxr-xr-x. 2 root root 6 Jul 30 08:24 alexdsx
     drwxr-xr-x. 2 root root 6 Jul 30 08:24 ld
     drwxr-xr-x. 2 root root 6 Jul 30 08:24 oldboyedu
     [root@oldboyedu-lnb oldboy]# mkdir {oldboyedu,alexdsx,lidao}
     [root@oldboyedu-lnb oldboy]# ll
     total 0
     drwxr-xr-x. 2 root root 6 Jul 30 08:26 alexdsx
     drwxr-xr-x. 2 root root 6 Jul 30 08:26 lidao
     drwxr-xr-x. 2 root root 6 Jul 30 08:26 oldboyedu
     -----------
    [root@oldboyedu-lnb oldboy]# ls -d {oldboyedu,alexdsx,lidao}
    alexdsx  lidao  oldboyedu
    

    1.1.4  使用字符串+数字的方式来创建目录

               oldboy01 oldboy02 oldboy03

              组合方式: 序列外的字符串和序列中的每一个数字或字符进行拼接

            序列可以在字符串的前面 也可以在字符串的后面

         

        [root@oldboyedu-lnb oldboy]# echo oldboy {01..3}
         oldboy 01 02 03
        [root@oldboyedu-lnb oldboy]# echo oldboy{01..3}
         oldboy01 oldboy02 oldboy03
        [root@oldboyedu-lnb oldboy]# #echo {01..3}oldboy
        [root@oldboyedu-lnb oldboy]# echo 01oldboy 02oldboy 03oldboy
        01oldboy 02oldboy 03oldboy
        [root@oldboyedu-lnb oldboy]# echo {01..3}oldboy
        01oldboy 02oldboy 03oldboy
        [root@oldboyedu-lnb oldboy]# mkdir {01..3}oldboy
        [root@oldboyedu-lnb oldboy]# ll
        total 0
        drwxr-xr-x. 2 root root 6 Jul 30 08:34 01oldboy
        drwxr-xr-x. 2 root root 6 Jul 30 08:34 02oldboy
        drwxr-xr-x. 2 root root 6 Jul 30 08:34 03oldboy
    

    1.1.6  序列和目录相结合

        在/oldboy/alex/test01...test10

               结果

      /oldboy/alex/test01 /oldboy/alex/test02 ..../oldboy/alex/test10

            

     [root@oldboyedu-lnb oldboy]# echo /oldboy/alex/test
    /oldboy/alex/test
     [root@oldboyedu-lnb oldboy]# #echo /oldboy/alex/test{01..2}
     [root@oldboyedu-lnb oldboy]# #1 /oldboy/alex/test01  /oldboy/alex/test02
     [root@oldboyedu-lnb oldboy]# #mkdir /oldboy/alex/test01 /oldboy/alex/test02
     [root@oldboyedu-lnb oldboy]# mkdir -p /oldboy/alex/test{01..2}
    

    1.1.7   在目录下创建多个不同的字符串的目录

      在/oldboy/www /oldboy/bbs  /oldboy/blog
      [root@oldboyedu-lnb oldboy]# #在/oldboy/www /oldboy/bbs  /oldboy/blog
      [root@oldboyedu-lnb oldboy]# #echo /oldboy/{www,bbs,blog}
      [root@oldboyedu-lnb oldboy]# #mkdir /oldboy/www /oldboy/bbs /oldboy/blog
      [root@oldboyedu-lnb oldboy]#
      [root@oldboyedu-lnb oldboy]# echo /oldboy/{www,bbs,blog}
       /oldboy/www /oldboy/bbs /oldboy/blog
      [root@oldboyedu-lnb oldboy]# mkdir /oldboy/{www,bbs,blog}
    

    1.1.8     序列和序列拼接

    创建 www01 www02 bbs01 bbs02 blog01 blog02 

    [root@oldboyedu-lnb oldboy]# #创建 www01 www02 bbs01 bbs02 blog01 blog02
    [root@oldboyedu-lnb oldboy]# echo {www,bbs,blog}{01..2}
    www01 www02 bbs01 bbs02 blog01 blog02
    

     在/oldboy/alex/下创建 stu01..10个目录 在每个目录下创建创建 www,bbs,blog目录

     使用tree命令查看结果

    [root@oldboyedu-lnb ~]# echo /oldboy/alex/stu{01..2}
    /oldboy/alex/stu01 /oldboy/alex/stu02
    [root@oldboyedu-lnb ~]# echo /oldboy/alex/stu{01..2}/{www,bbs,blog}
    /oldboy/alex/stu01/www /oldboy/alex/stu01/bbs /oldboy/alex/stu01/blog /oldboy/alex/stu02/www /oldboy/alex/stu02/bbs /oldboy/alex/stu02/blog
    [root@oldboyedu-lnb ~]# echo {A,B}{01..02}
     A01 A02 B01 B02
    

    1.1.9  使用序列的方式进行备份

    [root@oldboyedu-lnb ~]# #cp passwd{,.bak}
    [root@oldboyedu-lnb ~]# echo passwd{,.bak}
    passwd passwd.bak
    [root@oldboyedu-lnb ~]# cp passwd{,.bak}
    
    [root@oldboyedu-lnb ~]# echo {1..10..02}
    1 3 5 7 9
    [root@oldboyedu-lnb ~]# echo {1..10..1}
    1 2 3 4 5 6 7 8 9 10
    [root@oldboyedu-lnb ~]# echo {1..10..3}
    1 4 7 10
    [root@oldboyedu-lnb ~]# echo {1..10..4}
    1 5 9
    

    1.2   seq  输出序列

               格式:

                    seq num    # seq 100

                           -w      # 输出规范的序列

                           -s     # 指定分隔符

                    seq 10       # 输出数字1-10

                    seq -s +5    1+2+3+4+5

                    seq -s -5    1-2-3-4-5

                    seq -s *100 |bc (乘法 *有特殊含义需要用转义)

     1.3   cat  查看文件

                   输出内容到屏幕中 类似于echo

                     -n 显示文件的行号

    1.3.1   cat  <<EOF

      [root@oldboyedu-lnb ~]# cat <<EOF       # 可以显示菜单 选项
      > oldboyedu.com
      > EOF
      oldboyedu.com
    

    1.3.2   1次查看多个文件的内容

    [root@oldboyedu-lnb ~]# cat 1.sh for.sh passwd
    [root@oldboyedu-lnb oldboy]# ll
    total 12
    -rw-r--r--. 1 root root 11 Jul 30 09:37 1.txt
    -rw-r--r--. 1 root root 10 Jul 30 09:37 2.txt
    -rw-r--r--. 1 root root 10 Jul 30 09:37 3.txt
    [root@oldboyedu-lnb oldboy]# cat {1..3}.txt
    1111111111
    222222222
    333333333
    [root@oldboyedu-lnb oldboy]# cat *.txt
    1111111111
    222222222
    333333333
    

         文件合并

     [root@oldboyedu-lnb oldboy]# cat 1.txt 2.txt 3.txt > all.txt
    
     [root@oldboyedu-lnb oldboy]# cat all.txt
    
     1111111111
    
     222222222
    
     333333333
    
     [root@oldboyedu-lnb oldboy]# cat 1.txt 2.txt 3.txt > all.txt
    
     [root@oldboyedu-lnb oldboy]# cat all.txt
    
     1111111111
    
     222222222
    
     333333333
    
     [root@oldboyedu-lnb oldboy]# cat /etc/hosts > all.txt
    
     [root@oldboyedu-lnb oldboy]# cat all.txt
    
      127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    
           ::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
    
      [root@oldboyedu-lnb oldboy]# cat 1.txt 2.txt 3.txt > all.txt
    
      [root@oldboyedu-lnb oldboy]# cat /etc/hosts >> all.txt
    
      [root@oldboyedu-lnb oldboy]# cat all.txt
    
      1111111111
    
       222222222
    
      333333333
    
      127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    
            ::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
    
      [root@oldboyedu-lnb ~]# cat >1.txt<<EOF
    
       > oldboy
    
       > alex
    
       > EOF
    
       [root@oldboyedu-lnb ~]# cat 1.txt
    
       oldboy
    
       alex
    

    1.4   less  一页一页的查看文件内容 常用

       在工作中大的文件不使用cat和vim  vim需要把文件加载到内存中 速度较慢

             

     f           # 往下翻页
    空格        # 往下翻页
    b           # 往上翻页
    -N          # 显示行号
    100g      # 快速移动光标到100行
    1g         # 快速移动光标到首行
     G         # 文件的底部
     v         # 进入到编辑模式
    :wq       # 保存并退出vim模式返回less模式
     /         # 查找内容
     
      n     # 往下查找内容
      N     # 往上查找内容
      q     # 退出less模式
    

    1.5  more  一页一页的查看文件内容 不常用

    f     # 往下翻页
    b    # 往上翻页
    /    # 查找内容 不高亮显示
    

    1.6   head  显示头部信息 默认显示文件的前10行  任何输出到屏幕上的内容都可以显示

     语法规范:

                   1) head file.txt     # 默认显示file.txt的前10

                   2) cat file.txt|head # seq 100|head 

                   参数选项:

                   -n  显示n行

                   -c  显示文件的前n个字符 了解

    1.6.1   head   默认显示文件的前10行

                [root@oldboyedu-lnb ~]# head /etc/services # 默认显示文件的前10行

               -n2 显示输出内容的前2行  简写-2

                [root@oldboyedu-lnb ~]# seq 100|head -n2

                 1

                 2

                [root@oldboyedu-lnb ~]# seq 100|head -2

                 1

                 2

    1.6.2   head命令查看文件中的前2行  

     [root@oldboyedu-lnb ~]# head -2 /etc/passwd
     root:x:0:0:root:/root:/bin/bash
     bin:x:1:1:bin:/bin:/sbin/nologin  
    

    1.6.3  -c  了解 显示文件的前2个字符

    [root@oldboyedu-lnb ~]# head -c2 /etc/passwd
     ro
    

    1.7   tail 尾巴 默认输出文件最后的10行

       -n  显示尾巴最后的n行
    
       -f  follow 实时显示文件的变化  简写 tailf
    
       -F  实时显示文件的变化 监控文件是否存在 存在则正常监控 不存在则等待文件的出现
    

    1.7.1  显示文件最后1行

     [root@oldboyedu-lnb ~]# tail -n 1 1.txt
    10101010101010
    

    1.7.2   tail -f 实时显示日志的最新日志

     [root@oldboyedu-lnb ~]# tail -f /var/log/secure
    

     显示/etc/passwd的第11行   所有能显示到屏幕上的 都可以使用head和tail

              [root@oldboyedu-lnb ~]# head -11 passwd
    
              root:x:0:0:root:/root:/bin/bash
    
              bin:x:1:1:bin:/bin:/sbin/nologin
    
              daemon:x:2:2:daemon:/sbin:/sbin/nologin
    
              adm:x:3:4:adm:/var/adm:/sbin/nologin
    
              lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    
              sync:x:5:0:sync:/sbin:/bin/sync
    
              shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    
              halt:x:7:0:halt:/sbin:/sbin/halt
    
              mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    
              operator:x:11:0:operator:/root:/sbin/nologin
    
             games:x:12:100:games:/usr/games:/sbin/nologin
    
             [root@oldboyedu-lnb ~]# head -11 passwd|tail -1
    
             games:x:12:100:games:/usr/games:/sbin/nologin
    

    1.8  grep   过滤字符串信息  三剑客老三

               语法:               

               grep '过滤的内容'  file                  # 双引号 单引号 不加引号 都有特殊含义

               cat file|grep '过滤的内容'            # grep 单引号的含义 所见即所得

               参数选项:

               -n   # 显示过滤到内容的行号

               -v   # 取反 排错搜索到的内容

               ^$   # 表示空行

    PS:  grep 直接搜索文件 使用 grep '过滤的内容' 文件

    PS: grep 和其他命令的输出结合使用 ls cat 的输出结果进行过滤  cat file.txt|grep xxx

    1.8.1   过滤root的行  模糊匹配

    [root@oldboyedu-lnb ~]# grep root passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin 

    1.8.2  模糊匹配root    

    [root@oldboyedu-lnb ~]# cat passwd|grep root
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    [root@oldboyedu-lnb ~]# cat passwd|grep root
    

    1.8.3  显示过滤到内容的行号 -n

    [root@oldboyedu-lnb ~]# grep -n root passwd
    1:root:x:0:0:root:/root:/bin/bash
    10:operator:x:11:0:operator:/root:/sbin/nologin    

    1.8.4   -v 取反    

    [root@oldboyedu-lnb ~]# cat 2.txt
    oldboy
    alex
    lidao
    test
    [root@oldboyedu-lnb ~]# grep oldboy 2.txt
    oldboy
    [root@oldboyedu-lnb ~]# grep -v oldboy 2.txt
    alex
    lidao
    test
    

    1.8.5  过滤空行 和#号

    [root@oldboyedu-lnb ~]# grep '^$' 2.txt
    
    [root@oldboyedu-lnb ~]#
    
    [root@oldboyedu-lnb ~]# grep '#' 2.txt
    
     #lidao
    
     #lidao
    
     #lidao
    

    例: 把/etc/selinux/config中的空行和# 排除掉 只显示生效的行

     

    [root@oldboyedu-lnb ~]# grep -v '^$' /etc/selinux/config |grep -v '#'
    SELINUX=disabled
    SELINUXTYPE=targeted           
    扩展:[root@oldboyedu-lnb ~]# egrep -v '^$|#' /etc/selinux/config
    SELINUX=disabled
    SELINUXTYPE=targeted
    

    1.9   tr  1对1的替换   替换特殊的字符使用 不对字符串进行替换

               # @ / % & :      tr 无法直接读取文件

                        <              # 输入重定向

                语法格式:

                                   tr "替换谁" "替换成什么" < file

                                   cat file|tr "替换谁" "替换成什么"

    1.9.1    临时替换:为#

       [root@oldboyedu-lnb ~]# tr ":" "#" < all.txt
        root#x#0#0#root#/root#/bin/bash
        bin#x#1#1#bin#/bin#/sbin/nologin
        把结果重定向到文件中
       [root@oldboyedu-lnb ~]# tr ":" "#" < all.txt  > test.txt
       root@oldboyedu-lnb ~]# cat test.txt
       root#x#0#0#root#/root#/bin/bash
       bin#x#1#1#bin#/bin#/sbin/nologin
    
           [root@oldboyedu-lnb ~]# cat all.txt
    
            root:x:0:0:root:/root:/bin/bash
    
            bin:x:1:1:bin:/bin:/sbin/nologin
    
           [root@oldboyedu-lnb ~]# cat all.txt |tr "/" ":"
    
            root:x:0:0:root::root::bin:bash
    
            bin:x:1:1:bin::bin::sbin:nologin
    
             -----------------
    
           [root@oldboyedu-lnb ~]# cat all.txt |tr ":" "
    "
    
           root
    
            x
    
            0
    
            0
    
          [root@oldboyedu-lnb ~]# cat all.txt |tr ":" "	"
    
           root x   0   0   root    /root   /bin/bash
    
           bin  x   1   1   bin /bin    /sbin/nologin
    

    1.9.2   替换其他命令的输出

     [root@oldboyedu-lnb ~]# cat all.txt |tr ":" "+"
    
     root+x+0+0+root+/root+/bin/bash
    
     bin+x+1+1+bin+/bin+/sbin/nologin
    

    1.10  alias 别名 小名

     别名的作用: 系统命令安全   方便操作

                   系统为了安全 给一些比较危险的命令起了个小名

                   当执行危险的命令时 其他是执行的另外一个命令

                   张三--->铁蛋

                   李四--->二蛋

                   rm ----> rm -i           # -i 和我们交互执行命令

                   cp ----> cp -i

                   mv ----> mv -i

    1.10.1  如何查看系统的别名  alias

    [root@oldboyedu-lnb ~]# 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'
    

    1.10.2  临时取消别名使用

       [root@oldboyedu-lnb ~]# grep root all.txt
    
       root:x:0:0:root:/root:/bin/bash
    
       [root@oldboyedu-lnb ~]# grep root all.txt --color
    
       root:x:0:0:root:/root:/bin/bash
    
       [root@oldboyedu-lnb ~]# unalias rm
    
       [root@oldboyedu-lnb ~]# rm -rf etc
    

    1.10.3   定义别名  临时生效  alias 自己定义的名称

                  语法格式:

                  alias 自己定义的名称='可以执行的命令

    [root@oldboyedu-lnb ~]# alias rm='echo command rm bny......'
    

    1.10.4      永久生效 写入/etc/profile

     [root@oldboyedu-lnb ~]# tail -1 /etc/profile
      alias rm='echo command bny........'
    

    1.10.5    作业 使用vimeth0 其实就是编辑的真实网卡的配置

    vim  /etc/profile
    
    alias vimeth0='cat /etc/sysconfig/network-scripts/ifcfg-eth0' 
    
    "/etc/profile" 78L, 2003C written                       
    
     
    
    [root@oldboyedu-lnb~]# source /etc/profile
    
    [root@oldboyedu-lnb~]# vimetho
    
    -bash: vimetho: command not found
    
    [root@oldboyedu-lnb~]# vimeth0
    
    TYPE=Ethernet
    
    BOOTPROTO=static
    
    NAME=eth0
    
    DEVICE=eth0
    
    ONBOOT=yes
    
    IPADDR=10.0.0.200
    
    PREFIX=24
    
    GATEWAY=10.0.0.2
    
    DNS1=223.5.5.5
    

     

  • 相关阅读:
    C# DataTable 和List之间相互转换的方法
    毫秒级百万数据分页存储过程(mssql)
    lambdas vs. method groups
    关于优化C#程序的五十种方法
    Retrieving failed records after an SqlBulkCopy exception
    将数字按照3位一组添加逗号的正则替换
    生成互不相同随机数的一种算法
    2018年ElasticSearch6.2.2教程ELK搭建日志采集分析系统(教程详情)
    2018年ElasticSearch6.2.2教程ELK搭建日志采集分析系统(目录)
    JMeter接口压力测试课程入门到高级实战
  • 原文地址:https://www.cnblogs.com/strugger-0316/p/13600864.html
Copyright © 2011-2022 走看看