Linux学习篇之shell编程基础

设置环境变量:

① export 变量名=变量值   #设置环境变量

② 变量名=变量值    #设置环境变量

export 变量名

set   #显示当前shell所有变量

env   #查看环境变量

unset 变量名  #删除变量

常用环境变量:

PATH变量:系统查找命令的路径

echo $PATH    #查看PATH的值

PATH="$PATH":/root/sh   #将/root/sh目录加到PATH变量中(临时生效)

PS1变量:命令提示符变量

当前语系查询:

locale   #查询当前语系(en_US.UTF-8/zh_CN.UTF-8)

LANG:定义系统主语系的变量

LC_ALL:定义整体语系的变量

/etc/sysconfig/i18n   #语系配置文件

位置参数变量:

$n   #n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要大括号包含,如${10}

$*   #这个变量代表命令行中所有参数,$*把所有的参数看成一个整体

[email protected]   #这个变量也代表命令行所有参数,不过[email protected]把每个参数区分对待

$#   #这个变量代表命令行所有参数个数

预定义变量:

$?   #最后一次执行的命令的返回状态,上一个命令正确执行变量值为0,上一个命令执行不正确变量值为非0

$$   #当前进程的进程号(PID)

$!   #后台运行的最后一个进程的进程号(PID)

接收键盘输入:

read [选项] [变量名]

-p:提示信息

-t:秒数,指定等待时间

-n:字符数,接收指定字符数就会执行

-s:隐藏输入的数据,适用于机密信息输入

read -p "please input your name:" -t 30 name

echo $name

declare声明变量类型:

declare [+/-][选项] 变量名

-:给变量设定类型属性

+:取消变量的类型属性

-a:将变量声明为数组型

-i:将变量声明为整数型

-x:将变量声明为环境变量

-r:将变量声明为只读变量

-p:显示指定变量的被声明的类型

数值运算:

① aa=11;bb=22;dd=$(expr $aa + $bb);echo $dd    #dd为33

② aa=11;bb=22;dd=$(($aa+$bb));echo $dd    #dd为33

③ aa=11;bb=22;dd=$[$aa+$bb];echo $dd    #dd为33

环境变量配置文件:

~/.bash_logout    #注销时执行的配置文件

~/.bash_history   #历史命令保存文件

/etc/issue   #本地终端登录信息显示文件

/etc/motd   #本地登录、远程登录,只有登录成功便会显示此文件内容

正则表达式:

正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配,grep、awk、sed、等命令可以支持正则表达式

通配符用来匹配符合条件的文件名,通配符是完全匹配,ls、find、cp、这些命令不支持正则,可用通配符

*:前一个字符匹配0次或任意多次

.:匹配除了换行符外任意一个字符

^:匹配行首,例如^hello匹配以hello开头的行

$:匹配行尾

[ ]:匹配括号中任意一个字符,只匹配一个字符

[^ ]:匹配除中括号的字符以外的任意一个字符

\{n\}:表示其前面的字符恰好出现n次,例如[0-9]\{4\}匹配4位数字

\{n,\}:表示前面的字符出现不小于n次,例如[0-9]\{2,\}表示两位及以上数字

\{n,m\}:表示前面的字符至少出现n次,最多出现m次[a-z]\{6,8\}匹配6到8位的小写字母

字符截取命令:

cut命令:

cut [选项] 文件名

-f 列号:提取第几列

-d 分隔符:按照指定分隔符分割列(默认分隔符tab键)

grep "/bin/bash" /etc/passwd | grep -v "root" | cut -f 1 -d ":"   #查询系统中的普通用户

cut -d ":" -f 1,3 /etc/passwd

awk命令:

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

df -h | awk ‘{print $1 "\t" $3}‘   #截取第一和第三列

cat /etc/passwd | grep /bin/bash | awk ‘BEGIN{FS=":"}{print $1 "\t" $3}‘

#FS为指定分割符

sed命令:(对文件进行追加、插入、替换、删除、显示)

字符处理命令:

sort [选项] 文件名    #排序命令

-f:忽略大小写

-n:以数值型进行排序,默认使用字符串型排序

-r:反向排序

-t:指定分割符,默认分隔符为制表符

-k n[,m]: 按照指定的字段范围排序,从第n字段开始,m字段结束(默认到行尾)

sort -n -t ":" -k 3,3 /etc/passwd   #按照第3个字段以数值型排序

wc [选项] 文件名

-l:只统计行数

-w:只统计单词数

-m:只统计字符数

wc -l /etc/passwd   #统计行数

时间: 2024-11-07 00:00:33

Linux学习篇之shell编程基础的相关文章

Linux学习笔记之shell编程基础

编程语言: 机器语言.汇编语言 .高级语言 静态语言:编译性语言 ,特点: 强类型(变量在使用前,必须先声明,甚至还需要初始化):事先转换成可执行文件.包含语言如: C .C++.JAVA.C# 动态语言:解释性语言 ,特点: 弱类型(变量用时声明,甚至不区分类型):边解释边执行.包含语言如: ASP.ASP.NET .PHP .SHELL .Python .PERL 编程能力: 面向过程 :Shell.C 面向对象:Python .Perl .JAVA .C++ Bash :变量 类型 环境变

Linux学习8之Shell编程--基础正则表达式

1. 正则表达式与通配符 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配的.grep.awk.sed等命令可以支持正则表达式. 通配符是用来匹配符合条件的文件名,通配符是完全匹配的.ls.find.cp等这些命令不支持正则表达式,所有只能使用Shell自己的通配符来进行匹配. 2. 基础正则表达式 原文地址:https://www.cnblogs.com/anchun7080/p/10311257.html

Linux学习笔记(17) Shell编程之基础

1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find.cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了. (2) 基础正则表达式 元字符 作用 * 前一个字符匹配0次或任意多次 . 匹配除了换行符外任意一个字符 ^ 匹配行首,如:^hello会匹配以hello开头的行 $ 匹配行尾,如:hello$会匹配以hello结尾的

Linux学习之路-Shell编程

Shell的编程 Bash是用得最广泛的shell,是大多数Linux 系统的缺省 shell.Bourne Again shell (bash), 正如它的名字所暗示的,是Bourne shell 的扩展.bash 与Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性.bash 也包含了很多 C 和 Korn shell 里的优点.bash 有很灵活和强大的编程接口,同时又有很友好的用户界面. 下面具体来介绍bash. Bash语法基本介绍

Linux(五)shell编程基础

一.Linux shell简介 1.shell概述 Shell 是用户与内核进行交互操作的一种接口,目前最流行的 Shell 称为 bash Shell          Shell 是一门编程语言<解释型的编程语言>,即 shell 脚本<就是在用 linux 的 shell 命令编程>,          Shell 是一种脚本语言,那么,就必须有解释器来执行这些脚本.          Unix/Linux 上常见的 Shell 脚本解释器有 bash.sh.csh.ksh

Linux学习篇之shell基础

echo [选项] [输出内容] -e:支持反斜线控制的转义字符 例:echo -e "hell\bo"   →   输出结果为"helo" echo -e "\x68\t\x65\t\x6c\n\x6c\t\x6f\t"   →   输出hello(带有格式) echo -e "\e[1;34mThis is a blue\e[0m"   →   输出蓝色字体(This is a blue) #30m=黑色,31m=红色,3

Linux学习笔记(18) Shell编程之流程控制

1. if语句 (1) 单分支if条件语句 格式为: # 注意条件判断式两端的空格if [ 条件判断式 ];then 程序员 fi 或者 if[ 条件判断式 ] then 程序 fi 例:判断分区使用率 #!/bin/bash #获取根分区的使用率 rate=$(df -h | grep "/dev/sda5" | awk '{print $5}' | cut -d "%" -f 1) if [ $rate -ge 10 ] then echo "/dev

Linux学习之二十一-shell编程基础

Shell编程基础 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.Shell 脚本(shell script),是一种为 shell 编写的脚本程序 Shell 编程跟 java.php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了 Linux中的shell种类(shell解释器的种类

《跟老男孩学Linux运维之shell编程实战》-第二章 shell变量的核心基础

这篇文章主要讲解 shell变量的核心基础. 1.变量是什么? 变量是什么?可能有好多人不明白,简单地说,变量就是用一个固定的字符串(也可能是字符.数字等的组合)代替更多.更复杂的内容,该内容里可能还会包含变量.路径.字符串等其他的内容. 变量的赋值方式为:先写变量名称,紧接着是"="这个字符,最后是值,中间无任何空格(变量的内容一般要加双引号,以防止出错,特别是当值里的内容之间有空格时). 如何打印变量?通过echo命令加上$变量名 打印变量的值: 例如:定义变量和打印变量: [[e