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

Shell编程基础

发布时间:2020-12-15 17:06:40 所属栏目:安全 来源:网络整理
导读:变量 查看变量:set 删除变量:unset 变量名 设置环境变量:export 变量=变量值 查看环境变量 :env 环境变量PATH 查看环境变量:echo $PATH 增加环境变量: $PATH="$PATH":/要添加的路径 环境变量PS1 输出PS1:echo $PS1 设置环境变量PS1: 系统语系 查看语

变量

查看变量:set
删除变量:unset 变量名
设置环境变量:export 变量=变量值
查看环境变量 :env

环境变量PATH
查看环境变量:echo $PATH
增加环境变量:$PATH="$PATH":/要添加的路径

环境变量PS1

输出PS1:echo $PS1

设置环境变量PS1:

系统语系

查看语系:locale
输出系统当前语系:echo $LANG
查看系统默认语系:cat /etc/sysconfig/i18n

位置参数变量

$*代表所有的参数,但是把所有参数看成一个整体,$@代表命令行中的所有参数看成独立的个体

实验

vim lab1.sh

chmod 755 lab1.sh

预定义变量

$?:上一条命令的返回状态,成功返回0,执行不正确返回非0
$$:当前进程的进程号
$!:后台运行的最后一个进程的进程号

read命令接收键盘输入

例子

declare声明变量类型


声明为只读的变量不能再改变了,即不能再unset,不能取消变量类型,值不能改。

shell数值计算

1、使用declare声明计算:decalre -i c = $a+$b
2、使用expr:$(expr $a + $b),“+”两边必须有空格。
3、使用(()) 或[] :$(($a+$b))$[$a+$b] ,常用的方式

正则表达式和通配符

正则是用来搜索匹配符合条件的字符串,是包含匹配,通配符是完全匹配,找到一样的字符串。

基础正则表达式


“.”是正则元字符,要匹配 ”.” 时需要用到转义服,“.”

字符串截取

cut -f 列 -d 分隔符 文件路径
如命令:grep "/bin/bash" /etc/passwd | grep -v "root" | cut -f 1,2 -d ":"是在在配置文件/etc/passwd中搜索包含”/bin/bash”且不包含root的行(即搜索不是root用户的所有用户的密码信息),以 ”:” 作为分隔符,截取第1,2列数据 , -v表示取反。

例:printf '%st%st%s' $(cat a.txt)

awk命令

awk '条件1{动作1}条件2{动作2}...' 文件名


没有条件就是无条件,awk命令中的动作放在 ”{}” 中,外面用了单引号,里面不能用单引号了,注意命令中的格式控制用双引号包含。

查看分区“/dev/sda5”的使用率

BEGIN和END的使用

df -h | grep "/dev/sda5" | awk 'BEGIN{print "BEGIN--"}END{print "--END"}{print $5}'

结果:
BEGIN–
50%
–END

{FS=”:”}:指定分隔符为”:”

sed命令


查看文件“lab3.txt“中的第二行:sed ‘2p’ lab3.txt

替换第一个出现的”lcl”为“boy”:

sed -i ‘s/lcl/boy/’ 文件路径

替换所有“lcl”为“boy”

sed -i ‘s/lcl/boy/g’ 文件路径

排序命令sort

例子:/etc/passwd中的用户信息按uid数值从小到大排序(第三个字段是uid)

sort -n -t ":" -k 3,3 /etc/passwd

统计命令wc

wc [选项] 文件名字
选项:-l:显示行数,-w:单词数,-m:字节数

例:查看用户个数

wc -l /etc/passwd

(编辑:李大同)

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

    推荐文章
      热点阅读