工作中用到的shell基础命令

414 阅读2分钟
  • sed

c.biancheng.net/view/4028.h…

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作

sed 的 -i 选项可以直接修改文件内容。举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉,因为文件太大了。而通过 sed 来修改非常方便。

例 1: 正则表达式

 /sbin/ifconfig eth0
     //eth0 Link encap:Ethernet HWaddr 00:90:CC:A6:34:84
     //inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
     //UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     
 /sbin/ifconfig eth0  |  grep 'inet addr'  |  sed 's/^.*addr://g'
     //192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

^ 表示从头开始匹配,. 表示匹配除换行符 \n 之外的任何单字符, * 表示匹配前面的子表达式零次或多次。

例 2: sed s 替换脚本命令

格式: [address]s/pattern/replacement/flags。常用的 flags 标记如下所示:

image-20210721161045022.png

关于 ConfigPoeCipher.sh 中 N 可能的解释:www.cnblogs.com/ultranms/p/…

  • $1

    $0 就是编写的shell脚本本身的名字;

    $1 是在运行shell脚本传的第一个参数;

    $2 是在运行shell脚本传的第二个参数;

    $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值。

    c.biancheng.net/view/808.ht…

    严格来说,Shell 函数中的 return 关键字用来表示函数的退出状态,而不是函数的返回值;Shell 不像其它编程语言,没有专门处理返回值的关键字。

  • cat与grep

    cat 文件名| grep XXXX 过滤只显示包含XXXX的行的内容

  • awk

    placeholder

  • if [ -f home/home/1]

    1、if 条件判断关键字

    2、[ ] 语法要求

    3、-f 文件比较运算符,如果 filename为常规文件,则为真

    4、home取变量的值,如果.sh文件里面没有该就是则会取用户系统变量!你可以在终端中执行一下echohome 取变量的值,如果.sh文件里面没有该就是则会取用户系统变量!你可以在终端中执行一下 echo home 看看是什么路径

    5、1取输入的第一个参数.:shxxx.sh111那么此时1 取输入的第一个参数.例: sh xxx.sh 111 那么此时 1的值就是 111

  • unset

    Linux unset命令用于删除变量或函数。

  • -ne

    shell基本运算符,关系运算符。检测两个数是否不相等,不相等返回 true。

  • declare

    声明变量,-r 为将变量设置为只读。声明的变量可以用 unset 来取消。

  • sys.argv

    Python 中可以所用 syssys.argv 来获取命令行参数。例:

 $ python3 test.py arg1 arg2 arg3
 参数个数为: 4 个参数。
 参数列表: ['test.py', 'arg1', 'arg2', 'arg3']
 脚本名: test.py
用列表的方式即可访问参数,例如 sys.argv[1] 表示 arg1。
  • -nr

    -n 不输出模式空间的内容到屏幕,即不自动打印 -r,-E 使用扩展正则表达式

  • getfacl

    获取目录或文件访问控制列表。语法: getfacl [-参数] 文件

  • setfacl

    设定文件访问控制列表。常用setfacl -m 命令,例如:setfacl -m u:admin:r,g::--- 文件名。注意和chmod的配合使用。

  • python -c

    在shell环境下使用python -c, 可以在命令行中调用 python 代码,实际上 c 就是 command 的意思。

  • ps -ef | grep eds-f

    ps命令将某个进程显示出来。-e 显示所有进程,-f 全格式。

  • zgrep -a

  • source、 sh、 bash、 ./ 执行shell基本的区别

    blog.csdn.net/lihuaichen/…