• shell脚本常用命令


    shell基本命令

    1.#!/bin/sh是指此脚本使用/bin/sh来解释执行。
    解释:#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

    2.echo 命令用于向窗口输出文本。
    举例:echo "Hello World !"

    3.your_name="qinjx"
    赋值变量
    echo ${your_name}
    打印变量;使用变量的时候加括号和美元符

    4.chmod +x ./test.sh #使脚本具有执行权限
    ./test.sh #执行脚本
    chmod 777 /tmp -R 意思是把tmp文件夹及其子bai文件夹的权限全部修改为777


    解释语句一:ping -c 5 baidu.com > /dev/null 2>&1
    1. ping -c 5 baidu.com
    -c<完成次数>:设置完成要求回应的次数;
    2. >/dev/null
    这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。
    3. 2>&1
    这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。
    linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。

    5.解释语句二:if [ $? -ne 0 ];then
    $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值。
    所谓退出状态,就是上一个命令执行后的返回结果。退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1,这和C语言的 main() 函数是类似的。
    -ne 表示不等于。
    含义:如果上一条命令执行后结束代码不是0则执行下面的命令,直到fi行之前。

    6.sudo sh -c "echo 'eipadmin ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers"
    将eipadmin ALL=(ALL) NOPASSWD:ALL,写入/etc/sudoers里的最后面(追加)。

    7.查看系统安装了哪些shell
    [rocrocket@localhost ~]$ chsh -l
    /bin/sh
    /bin/bash
    /sbin/nologin
    /bin/zsh
    查看当前正在使用的shell:
    [rocrocket@localhost ~]$ echo $SHELL
    /bin/bash
    把eipadmin的shell改成/bin/bash:
    sudo chsh -s /bin/bash eipadmin

    8.chage设置账号和密码的有效期限
    sudo chage -I -1 -m 0 -M 99999 -E -1 eipadmin 设置eipadmin用户

    9.sh -c "echo 'vm.nr_hugepages=2048' > /etc/sysctl.d/hugepages.conf"
    hugepages.conf文件覆盖为里vm.nr_hugepages=2048(文件里只剩这一个变量)

    10.手动加载所有的配置文件,执行:
    # sysctl --system

    11.SQLITE3_ROOT_DIR=/etc/eipadmin
    sudo mkdir -p ${SQLITE3_ROOT_DIR}
    mkdir -p
    在创建目录时,我们通常会先检查一下是否存在,如果不存在,就创建,这个时候通常用mkdir -p进行。
    -p, --parents 需要时创建上层目录,如目录早已存在则不当作错误


    12.超级用户给其他用户设置权限:sudo chmod a+rx /home/user 使所有人可以访问,

     

    13.sudo cp eipadmin-dump /usr/bin/
    复制eipadmin-dump文件到/usr/bin/下


    14.sudo touch /var/log/natgwadmin.log
    在这个路径下/var/log/创建natgwadmin.log文件

    15.关闭UBUNTU自动更新
    # Disable apt auto update
    sudo systemctl disable apt-daily
    sudo systemctl disable apt-daily.timer
    sudo systemctl disable apt-daily-upgrade.timer
    sudo systemctl disable apt-daily-upgrade
    sudo sed -i 's/"1"/"0"/g' /etc/apt/apt.conf.d/10periodic


    16.回显执行的命令
    set -x

    17.出现:Account locked due to 25 failed logins
    pam_tally2 --user=ops #查看
    pam_tally2 --user=ops --reset #重置

     

    18.find / -name id_rsa
    rm /root/eip-cluster-master/id_rsa

    19.每一个 rules 文件,就像其他的 Makefile 一样,包含着若干条 rules,其中每一个都定义了一个 target 以及其具体操作。 一个新的 rule 以自己的 target 声明开头,后续的行都以 TAB 开头,以指示 target 的具体行为。
    当你想要执行一个 rule 的时候,就将 target 名称作为命令行参数来调用。比如说,debian/rules clean binary 会执行 clean 和 binary 两个 target。
    clean(必需):清理所有编译的、生成的文件或编译树中无用的文件。
    fakeroot debian/rules clean
    #在fakeroot下 执行一个clean的 rule
    debian/rules clean 运行了 dh clean,其实际执行的命令为:
    dh_testdir
    dh_auto_clean
    dh_clean

    fakeroot与sudo的区别
    fakeroot不能获得root的权限,sudo可以。
    fakeroot只是伪装成root,它不能改变需要root权限才能改变的文件,它只是让程序执行时按照有root权限的情况来运行,而对文件的操作实际上是在普通用户下进行的。

    fakeroot tar cvf /tmp/local.tar /usr/localsudo tar cvf /tmp/local.tar /usr/local
    上面两条命令都会在/tmp下建立local.tar,tar内的文件名都会以/开头,但前一条命令生成的文件属于当前用户,后一条命令生成的文件是root的。

    20.解压tar文档

    解压到当前工作路径
    # 未压缩
    tar -xf tar-file.tar
    # 使用gnuzip算法进行压缩的tar文档
    tar -xzf tgz-file.tar

    解压到指定目录
    # 未进行压缩的tar文档
    tar -xf tar-file.tar -C /path/to/destination
    # 使用gunzip算法压缩的tar文档
    tar -xzf tgz-file.tgz -C /path/to/destination

     

    21.解决出现unable to resolve host

    直接从/etc/hosts里面将127.0.1.1 {} 改成对应的主机名称

    22.全局搜索/查看历史命令
    root@ecs:~# find /* -name 01autoremove
    eipadmin@ecs:/root/eip-cluster-master$ history

  • 相关阅读:
    主流NoSQL数据库评测之HBase
    Java Io原理及应用
    Facebook:HBase每月存储1350亿条信息
    Facebook为何选择云计算开源Hadoop
    ActiveMq配置解析
    主流NoSQL数据库评测之HandlerSocket
    软件类官方网站收藏
    Mongodb 更新失败解决方案
    主流NoSQL数据库全方位评测:MongoDB
    java为什么比c++要慢?以及如何提高java的效率
  • 原文地址:https://www.cnblogs.com/lingjies/p/13495256.html
Copyright © 2020-2023  润新知