zoukankan      html  css  js  c++  java
  • shell命令精华篇

    常用命令实践

    [root@b ~]# cat c.txt
    1.1.1.1
    2.2.2.2
    3.3.3.3
    4.4.4.4

    [root@b ~]# cat c.txt |sed 's/^/& /'    &作用是代替前面需要替换旧的内容,这里指^。而^有指代以某某开头。
     1.1.1.1
     2.2.2.2
     3.3.3.3
     4.4.4.4

    [root@b ~]# cat c.txt |sed 'N;s/ / /'|sed 'N;s/ / /'     N指每次读取2行,然后将换行符替换为空格

    1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4

    tr -d " "    tr命令的作用——删除换行符,合并多行

    [root@b ~]# cat c.txt  | tr -d "                默认删除换行符后,所有字段连在一起

    1.1.1.12.2.2.23.3.3.34.4.4.4

    [root@b ~]# cat c.txt |sed 's/^/& /' | tr -d " "          利用sed替换命令在每个字段行首添加空格符

     1.1.1.1  2.2.2.2  3.3.3.3  4.4.4.4

    sed和tr命令对比:

    [root@b ~]# cat c.txt |sed 's/^/& /' | tr -d " " | xargs echo
    1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4          #开头无空格
    [root@b ~]# cat c.txt |sed 'N;s/ / /'|sed 'N;s/ / /'
    1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4          #开头无空格
    [root@b ~]# echo " 1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4"
    1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4          #开头有空格
    [root@b ~]# echo " 1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4" | xargs echo
    1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4          #开头无空格

    sort排序命令使用

    [root@b ~]# sort -nr -t ":" -k 3 /etc/passwd | head            -n表示以数值型进行排序,-t指定分隔符为冒号,-r表示反向排序,-k指定排序的字段范围,这里是按第三个3字段排序

     

    abc:x:1002:1003::/home/abc:/bin/bash
    feng:x:1001:1002::/home/feng:/bin/bash
    no:x:1000:1001:no:/home/no:/bin/bash
    systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    polkitd:x:998:997:User for polkitd:/:/sbin/nologin
    saslauth:x:997:76:Saslauthd user:/run/saslauthd:/sbin/nologin
    unbound:x:996:996:Unbound DNS resolver:/etc/unbound:/sbin/nologin
    geoclue:x:995:994:User for geoclue:/var/lib/geoclue:/sbin/nologin
    mysql:x:994:1000::/home/mysql:/sbin/nologin

    [root@b ~]# find . -maxdepth 1 -name  "*.sh"        #find查找当前目录下一级目录的所有符合条件的文件,-maxdepth 参数用于指定find查找目录的层级深度,默认find查找当前目录及目录下所有子目录内符合条件的文件。
    ./a.sh

    [root@b ~]# tar czf a.tar.gz a.sh             #tar打包文件,多次打包用同一个打包名称时,后面打包内容会覆盖前面打包内容。需要注意!
    [root@b ~]# tar czf a.tar.gz c.txt
    [root@b ~]# tar czf a.tar.gz a.sh.bak
    [root@b ~]# tar -tf a.tar.gz
    a.sh.bak

    [root@b ~]# i=1                  #$((i++)) 与$i区别,需要注意。i++等价于i=$i+1的意思。
    [root@b ~]# echo $((i++))
    1
    [root@b ~]# echo $i
    2
    [root@b ~]# echo $((i++))
    2
    [root@b ~]# echo $i
    3
    [root@b ~]# echo $((i++))
    3
    [root@b ~]# echo $i
    4

    while read 用法,表示逐行去读取某个文件

    [root@b ~]# cat /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    [root@b ~]# while read line;do echo $line;done </etc/hosts          # </etc/hosts代表read文件内容的来源  
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

    select选择菜单,PS3为固定语句格式。

    [root@b linshi]# cat b.sh
    #!/bin/bash

    PS3="what system do you like?"

    select i in CentOS Ubuntu Redhat

    do
    echo "you like system is:" $i

    done
    [root@b linshi]# sh b.sh
    1) CentOS
    2) Ubuntu
    3) Redhat
    what system do you like?1
    you like system is: CentOS
    what system do you like?2
    you like system is: Ubuntu
    what system do you like?3
    you like system is: Redhat
    what system do you like?^C

  • 相关阅读:
    iOS 给Main.storyboard 添加button 事件《转》
    vs2015
    1520-win10
    [置顶] Flex中Tree组件无刷新删除节点
    数据结构(10)之查找
    oracle 在表中有数据的情况下修改表字段类型或缩小长度
    UVa123
    1000万条数据导入mysql
    Linux协议栈代码阅读笔记(二)网络接口的配置
    jquery.validate.js 应用示例
  • 原文地址:https://www.cnblogs.com/xiaofeng666/p/10916592.html
Copyright © 2011-2022 走看看