linux系统常用命令

第1章    系统命令

1.1   echo 命令

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

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

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

             -e  激活特殊的含义

             \t  tab

             \n  回车

      

          [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

          \n 回车换行

          [root@oldboyedu-lnb ~]# echo -e "oldboy\nalex\nlidao" >> 1.txt

          [root@oldboyedu-lnb ~]#

          [root@oldboyedu-lnb ~]# cat 1.txt

          oldboyedu

          oldboyedu

          oldboy alex lidao

          oldboy

          alex

          lidao

          \t  插入tab制表符

          [root@oldboyedu-lnb ~]# echo -e "oldboy\talex\tlidao" >> 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 ":" "\n"

       root

        x

        0

        0

      [root@oldboyedu-lnb ~]# cat all.txt |tr ":" "\t"

       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

 

 

posted @ 2020-09-02 16:05  上善若水~小辉  阅读(206)  评论(0编辑  收藏  举报