Shell编程基础
来源:互联网 发布:刺客信条大革命1.5优化 编辑:程序博客网 时间:2024/06/07 14:34
变量
查看变量: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 '%s\t%s\t%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
- 【shell】shell 编程基础
- shell编程之shell基础
- Shell编程基础
- Shell编程基础
- Shell编程基础
- Shell编程基础
- Shell编程基础
- Shell编程基础
- 学习Shell编程基础
- Linux Shell 编程基础
- 基础shell编程
- Shell编程基础
- shell编程基础
- [分享]Shell编程基础
- Shell编程基础
- Shell编程基础
- shell编程基础
- shell编程基础
- JQuery
- Go中使用MySQL连接池
- 移动端的事件库
- javaSE 成员变量与局部变量
- leetcode--136--Single Number
- Shell编程基础
- javascript之多态
- tcp协议,ip协议,http协议三者的关系,从发起一个http url例子来分析
- 滴滴---2017校招---后台开发面经
- STM32学习笔记之时钟分析(受启发有汲取之处)
- LeetCode #44
- C 语言学习笔记01:变量存储方式和存储类别
- 算法课程Leetcode作业第二周技术博客
- Java 内存管理机制,深入理解JVM