在编写shell脚本时,我们经常需要向脚本传递外部参数。 ,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推。
一、传递参数示例:
如:
#!/bin/sh
# author:茅河野人
# url:https://blog.csdn.net/dongjing991
echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";
其中 $0 为执行的文件名(包含文件路径)
输出:
二、shell声明数组示例:
my_array=(A B "C" D)
echo "第一个元素为: ${my_array[0]}"
echo "第二个元素为: ${my_array[1]}"
echo "第三个元素为: ${my_array[2]}"
echo "第四个元素为: ${my_array[3]}"
这里注意的是数组的声明和初始化,数组中的元素不需要使用逗号分隔。
三、shell的运算
Shell 和其他编程语言一样,支持多种运算符,包括:
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
- 文件测试运算符
加减乘除四则运算
关系运行,大于小于等于
布尔运算
逻辑运算
linux常用命令:
关机:
shutdown-h now
立刻关机shutdown-h 3
3分钟后关机poweroff立刻关机
重启:
-
shutdown-r now
-
立刻重启shutdown-r 3
-
3分钟后重启reboot立刻重启
帮助命令:
--help命令shutdown --help:ifconfig --help:查看网卡信息
man命令(命令说明书) man shutdown注意:man shutdown打开命令说明书之后,使用按键q退出
目录切换:
cd / 切换到根目录cd /usr 切换到根目录下的usr目录cd ../ 切换到上一级目录 或者 cd ..cd ~ 切换到home目录cd - 切换到上次访问的目录
查看目录:
ls查看当前目录下的所有目录和文件ls-a 查看当前目录下的所有目录和文件(包括隐藏的文件)ls-l 或 ll 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)ls/dir 查看指定目录下的所有目录和文件 如:ls /usr
创建目录:
mkdir mhyr 在当前目录下创建一个名为qq的目录mkdir /usr/mhyr在指定目录下创建一个名为qq的目录
删除目录或文件:
rm文件 删除当前目录下的文件rm-f 文件 删除当前目录的的文件(不询问)
全部删除:
rm -rf * 将当前目录下的所有目录和文件全部删除rm -rf /* 将根目录下的所有文件全部删除(慎用!)
目录修改:
mv当前目录 新目录例:mv bb aa 将目录bb改为aa
剪切目录:
命令:mv 目录名称 目录的新位置例:将/usr/lib目录下的qq目录剪切到/usr目录下面 mv /usr/lib/qq /usr
拷贝目录:
命令:cp -r 目录名称 目录拷贝的目标位置 -r代表递归例:将/usr/lib目录下的qq目录复制到 /usr目录下面 cp /usr/lib/qq /usr
搜索目录:
命令:find 目录 参数 文件名称例:查找/usr/lib目录下的所有以a开头的目录或文件find /usr/lib -name 'a*'
新建文件:
命令:touch 文件名例:在当前文件目录创建一个名为ai.exe文件 touchai.exe
删除文件:
命令:rm-rf 文件名例:删除ai.exe文件 rm-rfai.exe
修改文件:
命令:vi 文件名例:打开房钱目录下的qq.exe文件vi qq.exe或者 vim qq.exe
查看文件:
cat:看最后一屏例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容catsudo.conf
more:百分比显示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看more sudo.conf
less:翻页查看例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上和向下翻页,q结束查看less sudo.conf
tail:指定行数或者动态查看例:使用tail-10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束 tail-10 sudo.conf
打包或压缩文件:
Linux中的打包文件是:qq.tar
Linux中的压缩文件是:qq.gz
Linux中打包并压缩的文件是:.tar.gz
命令:tar -zcvf 打包压缩后的文件名 要打包的文件
z:调用gzip压缩命令进行压缩c:打包文件v:显示运行过程f:指定文件名
解压文件:
命令:tar[-zxvf] 压缩文件x代表解压
查找命令:
ps -ef | grep sshd 查找指定ssh服务进程 ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除gerp身 ps -ef | grep sshd -c 查找指定进程个数
find . -name "*.conf" -ls 在当前目录查找以.conf结尾的文件,并显示详细信息。find /root/ -perm 500 查找/root/目录下权限为500的文件 find . -type f -name "*.txt" 查找当目录,以.txt结尾的普通文件 find . -type d | sort 查找当前所有目录并排序 find . -size +50M 查找当前目录大于50M的文件
查看当前目录:pwd
查看进程:ps -ef
结束进程:kill
ifconfig:查看网卡信息
ping:查看与某台机器的连接情况
netstat -an:查看当前系统端口
重启网络:
命令:service network restart