运行shell命令,需要在前面加echo

shell中变量:

$HOME :当前用户主目录

$PWD :当前运行命令的目录

$USER: 当前用户

set: 显示当前shell所有变量

export+ 变量名 :可把变量提升为全局环境变量

定义变量:

STR=“hello world”

A=9

A=​​ls -la​​反引号,运行里面的命令,并把结果返回给变量A, 也可以写成A=$(ls -la)

shell中特殊变量:

$? 表示上一个命令退出的状态

$$ 表示当前进程编号

$0 表示当前脚本名称

$n 表示n位置的输入参数(n代表数字,n>=1)

$# 表示参数的个数,常用于循环

∗ 和 *和 ∗和@ 都表示参数列表

运算符:

格式 :expr m + n 或$((m+n)) 注意expr运算符间要有空格

计算(2 +3 )×4 的值

echo ​​expr \​​expr 2 + 3` * 4` 或 $(((2+3)*4))

for循环:

for N in 1 2 3

do

echo $N

done

或者

for ((i = 0; i <= 5; i++))

do

echo “welcome $i times”

done

while循环:

i=1

while ((i<=3))

do

echo $i

let i++

done

case语句:

case $1 in

start)

echo “starting”

;;

stop)

echo “stoping”

;;

*)

echo "Usage: {start|stop} “

esac

if判断:

if condition

then

statements

[elif condition

then statements. …]

[else

statements ]

fi

[ condition ] (注意condition前后要有空格)

[ condition ] && echo OK || echo notok 条件满足,执行后面的语句

常用判断条件:

= 字符串比较

-lt 小于

-le 小于等于

-eq 等于

-gt 大于

-ge 大于等于

-ne 不等于

自定义函数:

function funname ()

{

action;

[return int;]

}

命令行文本处理:

1、cut命令可以从一个文本文件或者文本流中提取文本列

选项与参数:

-d :后面接分隔字符。与 -f 一起使用;

-f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;

-c :以字符 (characters) 的单位取出固定字符区间;

例如:

将 PATH 变量取出,我要找出第五个路径。

#echo $PATH | cut -d ‘:’ -f 5

/usr/local/bin

2、sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。

选项与参数:

-f :忽略大小写的差异,例如 A 与 a 视为编码相同;

-b :忽略最前面的空格符部分;

-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;

-n :使用『纯数字』进行排序(默认是以文字型态来排序的);

-r :反向排序;

-u :就是 uniq ,相同的数据中,仅出现一行代表;

-t :分隔符,默认是用 [tab] 键来分隔;

-k :以那个区间 (field) 来进行排序的意思

例如:

/etc/passwd 内容是以 : 来分隔的,我想以第三栏来排序,该如何?

[root@www ~]# cat /etc/passwd | sort -t ‘:’ -k 3

root❌0:0:root:/root:/bin/bash

uucp❌10:14:uucp:/var/spool/uucp:/sbin/nologin

operator❌11:0:operator:/root:/sbin/nologin

bin❌1:1:bin:/bin:/sbin/nologin

games❌12????games:/usr/games:/sbin/nologin

3、wc 统计文件里面有多少单词,多少行,多少字符。

例如:

#wc -m /etc/passwd #统计文件的字符数

1719

4、awk命令

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。

例如:

如果只是显示/etc/passwd的账户

#cat /etc/passwd |awk -F ‘:’ ‘{print $1}’

root

daemon

bin

sys

5、sed命令

sed 是一种在线编辑器,它一次处理一行内容。

替换:s命令

例如:

$ sed ‘s/test/mytest/g’ example

-----在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。