加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

部分工具与基础

发布时间:2020-12-16 01:38:58 所属栏目:安全 来源:网络整理
导读:A long lists Shell hello File pro Toos Toos and sed Rpm and yum shell hello 格式 变量 运算 条件 登录方式与配置文件读取 环境 格式 行首:#!/bin/shells 注释:"#" 开头 运行:bash script 、chmod +x script ; 路径 / script 建议:添加脚本的作用,

A long lists

  1. Shell hello
  2. File pro Toos
  3. Toos and sed
  4. Rpm and yum

shell hello

  • 格式
  • 变量
  • 运算
  • 条件
  • 登录方式与配置文件读取
  • 环境

格式

行首:#!/bin/shells

注释:"#" 开头

运行:bash script 、chmod +x script ; 路径 / script

建议:添加脚本的作用,使用方法,参数、变量说明。

变量

Type :string number

命名 :- 关键字、-数字字母下划线、驼峰命名

种类 :

  • 局部变量:当前shell内有效
  • 环境变量:当前shell、子shell
  • 本地变量: funtion
  • 位置变量: 参数:123 10 所有,数组
  • 特殊变量:
    $?:cmd retrun 、也可在script中设置 exit[value] 来控制retrun
    $0:script name
    $$:当前进程pid
  • 只读变量:readonly 变量、declare 变量

运算

  • 算数符

    + - * / % let
  • 随机函数

    $RANDOM 0-32767
  • 增强算数符

    += -= *= /= %=
  • 自增减

    ++ --
  • 逻辑运算

    true false 0 1
    & | ! ^ && ||

条件

test 判断
[ 判断 ]
[[ 判断 ]]

  • 测试变量是否创建

    [ -v 变量 ]
  • number

    [ number -gt/-ge/-eq/-ne/-lt/-le number ]
  • String

    [ string -z/-n/=/>/</!=/==/=~ string ]
  • file存在测试

    [ -a file] 返回真假表示存在与否

    -b 块文件存在与否

    -c 字符文件。。。

    -d 目录文件。。。

    -p 管道、-S套接字、-h符号链接
  • 权限测试

    [ -r/w/x file ] 文件的读写执行权限存在判断

    [ -u/g/k ] 特殊权限判断
  • 属性测试

    [ -s file] 非空存在判断
  • ...

  • 组合条件

    [ 条件1 -a/-o 条件2 ] 并且/或者

    [ ! 条件 ] 取反

    && || ! 的组合

  • Read

read -p "string" -s -n 10 -d "S" -t 30 str

读取一个输入到str中 设置提示:string 不显示输入内容 长度为10 S字符结束 30秒内输入时限

  • If

    if 条件 ;then 处理块 fi

    if 条件 ;then 处理块1 else 处理块2 fi

    if 条件1;then 处理块1 elif 条件2;then 处理块2 else 处理块3 fi

  • Case
    case 变量 in 1) 处理块;; 2) 处理块;; *) 处理块;; esac

登录方式与配置文件读取

1.生效范围

  • 全局:
    /etc/profile
    /etc/profile.d/*.sh

    /etc/bashrc
  • 用户:
    ~/.bash_profile
    ~/.bashrc


    2.登录形式

  • 交互式

    1 终端输入账号密码登录

    “su - UserName” 切换的用户

    执行顺序:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile -->
    ~/.bashrc --> /etc/bashrc
  • 非交互式
  • Profile
    profile类:
    为交互式登录的shell提供配置
    全局:/etc/profile,/etc/profile.d/*.sh
    个人:~/.bash_profile
    功用:

(1) 用于定义环境变量

(2) 运行命令或脚本

  • Bashrc

    为非交互式和交互式登录的shell提供配置
    全局:/etc/bashrc
    个人:~/.bashrc
    功用:

(1) 定义命令别名和函数

(2) 定义本地变量

  • 更改配置文件后生效方法:

    1重启shell进程

    2source 或 . 配置文件名

    例 生效全局bashrc: source /bin/bashrc 或 .空格~.bashrc
  • 退出后执行

File por toos

  • locate
  • find
  • xargs
  • compress uncompress
  • gzip zunzip
  • bzip2 bunzip2
  • xz unxz
  • zip unzip
  • tar
  • cpio

locate

  • 非实时查找,用之前需要先创建一下数据库:updatedb,来创建对应文件列表的数据库,速度快是优势,但是构建数据库过程会消耗很多资源
  • 语法&使用

    locate [option] keyword

    -i 不区分大小写

    -n 前n个

    -r 使用正则

find

  • 实时查找,遍历指定路径
  • 语法&使用

    find [option] [路径] [动作]

    深度:max/min depth level

    1.文件名:find -name "filename" (支持grop,-i 区分大小写)

    2.节点查找:find -inum 节点号(inode)

    3.链接数相同:find -link name

    4.指定用户:-user

    5.指定组:-group

    6. uid gid 用户或组id查找

    7.取反组与用户 -nouser -nogroup

    8.文件类型查找-tpye

    -8-1 find tpye -d 目录

    -8-2 find tpye -f 路径
    -8-3 find tpye -l 符号链接
    -8-4 find tpye -b 块结构
    -8-5 find tpye -p 管道

    9. -empty 空目录或空文件

    10.组合条件:-a -o -not ! (与或非)
    and day
  • 动作

    -ls : 相当于执行结果后的 ls-l 效果

    -delete:删除找到的文件or目录

    -ok cmd {}; 对找到的文件执行cmd 命令需要执行用户确认

    -exec cmd{} ; 对找到的文件执行cmd

    {}:代指命令查找的文件名称自身

    Xargs

  • 简介:

    由于很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs
    可以读入 stdin 的数据,并且以空格符或回车符将 stdin 的数据分隔成为参数
    许多命令不能接受过多参数,命令执行可能会失败,xargs可以解决
    注意:文件名或者是其他意义的名词内含有空格符的情况
    find和xargs的组合:find | xargs COMMAND
  • 示例

    ls | xargs rm 删除当前目录下的大量文件

    find /sbin/ -perm +700 | ls -l 这个命令是错误的

    find /bin/ -perm /7000 | xargs ls -Sl 查找有特殊权限的文件,并排序

    find /bin/ -perm -7000 | xargs ls -Sl 此命令和上面有何区别?
    find -type f -name “*.txt” -print0 | xargs -0 rm 以字符nul分隔

部分常用解、压缩、归档工具

  • gzip/gunzip: .gz

    zip:

    zip [option] file

    压缩 zip t.txt > t.gz

    -d解压缩:zip -d t.gz >t.txt
  • bzip2/bunzip2/bzcat

    bzip2[option] file

    bzip2 -k原文件 -d解压 file
    bzcat file.bz2 bzcat 提前看
  • xz/unxz/xcat

    xz [option] file

    -k 原文件 -d 解压 xzcat 提前看

  • tar 打包工具

    语法:tar [option] 打包后的位置名 要打包的目标

    打包:tar -cvf file.tar filename

    解包:tar -x -f

    其他选项用法:

    tar -r -f /PATH/FILE.tar FILE 追加文件
  • *split:分割一个文件为多个文件

    分割大的 tar 文件为多份小文件
    split -b Size –d tar-file-name prefix-name
    split -b 1M –d mybackup.tgz mybackup-parts
    split -b 1M mybackup.tgz mybackup-parts
    合并:
    cat mybackup-parts* > mybackup.tar.gz
  • cpio

    -古老的打包文件或解包工具

    参考互联网,基本只有极少数内部以前打的包使用

未完待续。。。2019-10-14

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读