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

 

posted @ 2020-08-13 11:15  凌界  阅读(1341)  评论(0编辑  收藏  举报