Linux-Chap4-Shell编程进阶

Prometheus-2.53.1安装 Prometheus+Grafana安装 阅读详情

 

简单过滤器命令

简单过滤器功能:处理文件中的数据、编辑页面格式、截取文件内容、比较文件内容、字段和排序。

pr:改变文件打印格式。

-l n 设定页面长度为n行,默认为66 
-w n 设定页面宽度为n字符,默认为72,仅分列显示时有效(宽度不够时截掉)
-h str 设定页眉为str 
-n 对行进行编号 
-k 分k列输出 
-t 不显示页眉、页脚和边距

head:显示文件的开头。

tail:显示文件的结尾。

head -n k 指定显示文件前k行的内容
tail -n k 指定显示文件后k行的内容 
     -f 监控文件内容的增长

wh1516@PinkRAY:~/桌面$ ls -F | pr -n -l 30 -w 40 -3 | head -n 10


2021-01-13 19:01                 第 1 页


    1	cach 	 6   f1	     11	  lab4
    2	ch3/ 	 7   f2	     12	  linu
    3	CH4/ 	 8   f3	     13	  linu
    4	ch6e 	 9   lab2    14	  linu
    5	data 	10   lab3    15	  OS/

cut:垂直划分文件。

-c 按列剪切,每列宽度为一个字符 
-f 按字段剪切,字段分隔符由-d选项指定,默认为制表符 
-d 指定字段分隔符

cut -c1-5 passwdcp
root:
daemo
bin:x

cut -d: -f1-3 passwdcp
root:x:0
daemon:x:1
bin:x:2

paste:垂直粘贴文件。

-d 指定分隔符 
-s 合并行

wh1516@PinkRAY:~/桌面$ ls | paste -s -d"::\n"
1.txt:c:cachelab-handout
ch3:CH4:ch6emp.tar.gz
cond_exp.c:datalab-handout:lab2
lab3:lab4:linux
linuxch6:OS

//paste把所有行合并为一行,分隔符三个: : \n
//按次序插入分隔符

sort:对文件内容排序。(以行为单位)

-tchar 用char作为分隔符识别字段 
-k m,n 对第m个字段开始到第n个字段结束进行排序 
-k m.n 对第m个字段的第n个字符进行排序 
-u 删除重复行 
-n 数值排序 
-r 反转顺序排序 
-f 不区分大小写 
-c 查看文件是否有序 
-o file 将输出存入文件file中,可以和源文件同名

uniq(unique):定位文件中的重复行和非重复行。

-d 选择并显示输入中的重复行 
-u 选择并显示输入中的非重复行 
-c 显示每行出现的次数

//可与sort配合使用

tr(translate):字符替换将SET1中的字符替换为SET2中的相应字符。【只接受标准输入中的数据,不接受文件作为参数】

tr -option SET1 SET2
-d 删除字符 
-s 压缩连续字符

tr ":" ";" < psdex | head -n 3 //:替换为;
tr "[a-z]" "[A-Z]" < psdex | head -n 3 //小写字母替换为大写
tr -d "/" < psdex | head -n 3 //删除/

cmp(compare):逐字对比两个文件的内容,在遇到差异时终止。

cmp -option FILE1 FILE2 SKIP1 SKIP2
-b 输出第一个差异字节数、行数和字符 
-l 输出所有差异字节数 
-i 忽略文件1起始SKIP1字节和文件2起始SKIP2字节

comm(common):逐行对比文件内容,显示相同行和不同行【需要文件是有序的】。

输出结果分三列显示:
    第1列显示FILE1中独有的行
    第2列显示FILE2中独有的行
    第3列显示共同行
常用选项:
    -1,-2,-3: 隐藏显示1,2,3列

diff(difference):显示两个文件的差别,并给出如何使其变得一样。

-q 只在文件不同时显示 
-s 只在文件相同时显示 
-c 显示相同内容 
-u 显示不同内容 
-i 忽略大小写 
-b 忽略重复空白

前 第一个文件 后 第二个文件

示例分析:

ls -l | sort -k 5 -nr | tr -s " " | cut -d" " -f5,9
以从大到小的顺序列出当前目录中的文件。
    ls -l输出列表,用空格分隔的
    给列表排序,sort按照第五个字段给其排序(-k 5),按数值排序-n,从大到小-r(不加则从小到大)
    替换,把多余空格去掉,tr -s " "
    截取 cut -d 只需要文件大小和名字。第五列为大小,第九列为名字
    
tr " \t:" "\n\n\n" <psdex | sort | uniq -c | pr -t -3
统计一个文件中每个单词出现的次数。

正则表达式过滤器

grep命令查找文件中的某一模式、使用正则表达式描述该模式。

基本正则表达式(BRE),扩展正则表达式(ERE)。sed命令。

基本正则表达式:

模式语句匹配含义
[pqr]p,q,r中的单个字符
[a-z]a到z之间的任意单个字符
.任意单个字符
a*0个或任意多个a字符
a\{m,n\}a字符出现m到n次
[^pqr]不是p,q,r的单个字符
^expexp模式位于行首
exp$exp模式位于行尾
 通配符正则
单个字符?.
任意长度**不能单独出现,前面要跟字符,表示该字符出现任意多次
a*以a开头的任意字符串任意长度的a
不是!^
  ^从字符串开头匹配,$从字符串尾部匹配
abc*
    ab+任意多个c 字符串中间出现匹配的即可

^[a-z]\{1,\}[0-9]*
    从字符串开头开始匹配 [a-z]任意字母开头 且该字母 重复大于等于1次 后面是0-9的数字 可以重复任意多次
    即字母开头 数字结尾 中间可以为字母可以为数字

^[^a-zA-Z]
    从头开始匹配 字符不是小写字母或大写字母 
    开头不是字母的都可以匹配

^.*[a-z]*\_[0-9].*$
    ^开头 $结尾——必须整个字符串都满足
    .开头为任意字符
    .* 相当于通配符里的*(任意字符任意多次)
    任意小写字母
    \_ 转义符—— 下划线
    后面跟1位数字
    结尾任意

扩展正则表达式:

模式语句匹配含义
a+1个或任意多个a字符
a?0个或1个a字符(至多出现一次)
exp1|exp2匹配exp1或exp2
(a1|a2)a3

匹配a1a3或a2a3(匹配一个即可)

[0-9]*\.?[0-9]+
    任意长度数字或没有
    \.表示转义 小数点(加了?意为可有可无)
    再加0-9数字
    【判断其是否为合法正数】

(a|b|cd)[0-9]
    a或b或cd 加上0-9的一个数字

grep:在文件中查找指定模式。(find是找文件,grep找文件内容,用到?或者| 加-E)

-G 匹配基本正则表达式(默认) 
-E 匹配扩展正则表达式 
-n 显示匹配行的行号 
-c 显示出现次数 
-e 匹配以连字符开头的表达式 
-x 以整行匹配模式 
-i 忽略大小写 
-v 列出不匹配的行 
-l 只给出匹配模式的文件名

在grep命令中使用正则表达式
grep –i "^draco" /etc/passwd  //passwd文件内以draco开头的一行
grep –E "[0-9]+$" files  //文件名可以用通配符
grep –l "#include<class1.h>" *.c
grep –e "-mtime" files
grep –v "^draco" files
find ./ –name ".c" –exec grep –l "#include<class1.h>" {} \;
    //先用find找.c文件 然后再找是否匹配这一行
    //-exec 在找到的所有文件里运行后面的命令
    //功能同第三行
grep –iE "^(draco|qin).*/bash$" /etc/passwd

sed流编辑器:对数据流进行定位操作。

sed [option] 'address action' Files
    address 定位指定行
    action 执行指定的编辑操作

-e 使用多条指令
-f 从文件中获取指令
-n 使用p指令时禁止默认输出方式

定位方式:
    指定行号:k 第k行
             m,n 从m到n的连续行
    指定模式:/pattern/ 模式匹配的行

sed内部action:

action功能
i、a、c插入、追加和修改文本
d删除行
p在标准输出上打印结果
q读取到指定行后退出
r fname将文件fname的内容放在行后
w fname将指定行写入文件fname
=打印指定行号
s/str1/str2/用str2替换指定行中出现的第一个str1
s/str1/str2/g用str2替换所有的str1
截取文件前五行:
    sed '5q' file
    //相当于head -5
    //5——定位到第五行 q——读取到指定行后退出

替换指定模式:
    sed '/pattern/s/str1/str2/' file
    //第一个/到第二个/之间为要匹配的模式
    sed '/.*:x/s/:x/:x    /' examlist
    /.*:x/表示有:x的就拿出来
    以s开头 表示做替换
    /str1/str2/ 加g就是替换所有 否则替换这一行第一个

打印指定模式的行:
    sed -n '/pattern/p' file

打印文件行数:
    sed -n '$=' file
    //wc -l 统计行数
    //内置变量$ 定位到文件最后一行
    //= 输出这一行的行号

打印文件前三行:
    sed -n '4,$!p' file
    //!p 表示不做
    //第4行到最后一行 ($) 不是想要的行
    //【要1-3行 print】

截取文件后五行:
    sed -n "$((`sed -n '$=' psdcp` -4)),\$p"
    //-n 屏蔽默认输出
    //'倒数第五行,$p' psdcp即可
    //整数运算 $(( )) 得到倒数第五行的行号(但sed中不接受shell命令 为了替换$ 外面加上双引号)
    //获取最后一行行号 $=
    //改成双引号后p前的$也会被替换 p被解释成变量--> \$p \转义符号

将指定行写入文件:
    sed -n '/<head>/,/<\/head>/w output.html' input.html

文本编辑:输入时每行以\结束
    在指定行之前插入行:sed '1i\ ...' file
    在指定行之后插入行:sed '1a\ ...' file
    修改指定行:sed '1c\ ...' file

重定向临时文件 然后将临时文件输入到源文件
输入输出文件不可同名 否则文件变为空白
sed -i 可以输入输出同名
sed '3i\newline' 在第三行插入“newline”

删除注释行:
    sed '/^#/d' file
删除空白行:
    sed '/^[ ]*$/d' file
    //匹配空格后加上*

将文件中的分隔符:替换为|:
    sed 's/:/|/g' examlist
    // 要替换的东西/替换成什么/(如要替换所有)g

删除行中的指定模式:
    sed 's/pattern//g' file

在替换模式中使用&匹配源模式:
    sed 's/Professor/Associate &/g' files
    //Associate & == Associate
    //Professor (指代前面的模式)

查找具有写权限的文件:
    ls -l | sed -n '/^.\{2,8\}w/p'

查找通讯录contact文件中以021开头的11位电话号码:
    sed -n '021[0-9=\{8\}p' contact

将通讯录contact文件中的姓名顺序颠倒:
    sed 's/\([a-zA-Z]*\) *\([a-zA-Z]*\)/\2, \1/' contact
    \1 表示前面的 \2 表示后面的
    \2, \1 表示前后颠倒

awk编程

awk是Perl之前功能最强大的文本处理和报表制作工具。awk合并了几个过滤器的功能,可以独立进行程序设计。awk可以识别和处理一行中的各个字段。awk能够执行数值计算。awk接受扩展的正则表达式进行模式匹配。awk具有类似C语言的程序设计构造。awk可以使用内置变量和函数。

awk基础:

awk将每一行分成多个字段,默认分隔符为空格和制表符,分隔符可以由-F选项自定义。(文件创建时要制定分隔符)

awk用$1,$2等来引用每个字段,类似于shell中的命令行位置参数。($0表示整行)

可以对各个字段进行正则表达式匹配、比较、条件判断、数值计算等。

awk命令格式:
    awk [options] 'selection_criteria {action}' files
selection_criteria和action构成了一个awk程序:
    selection_criteria决定了程序作用的对象
    action决定了程序操作的行为(指令用花括号括起)

awk '$4 ~ /.*sbin.*/ {print }' examlist
    //第四字段包含sbin的 输出

awk -F: '$3 > 2 {print}' examlist
    //-F指定分隔符为:
    //把第三个字段内容大于2的部分拿出来print
    //可做数值比较

action:print和printf:awk使用print和printf向标准输出写入内容,不带action时默认执行print。

        print生产未格式化的输出,printf生成带格式的输出(%s字符串格式,%d整数格式,%f浮点数格式)(printf需要在每行最后加\n输出换行符)

printf格式:printf "含格式符号的字符串", 参数

        格式符号+类型符号

格式符号含义
%格式起始符,必要
-左对齐,省略为右对齐
0表示指定空位填补0
m.nm指输出占用的宽度,n表示数值输出精度,默认n=6
l长整型或双精度数
hshort型
类型符号含义
d十进制整数
o八进制数
x十六进制数
u无符号十进制整数
c单个字符
s

字符串

f浮点数
e指数形式输出实数

管道和重定向:每个print和printf都可以用 > 和 | 进行重定向。每个重定向的文件名和管道命令都要加双引号" " 。

awk '{ printf "%10s %6d\n", $1, $2 | "sort" }' file //输出排序
awk '{ printf "%10s %6d\n", $1, $2 > "outputfile" }' file //输出重定向

数值操作:awk命令支持的数值运算符:+,-,*,/,%(取余),^(乘方)。

read num1 num2; echo $num1 $num2 | awk '{print $1/$2}'
33 5
6.6

用printf命令带格式输出浮点数
echo $num1 $num2 | awk '{printf "%1.5f\n", $1/$2}'
47.14286

赋值运算:+=,++,-=,-- ……
awk -F: '{i++; printf("%3d %6d %8.2f\n", i, $6, $6/12)}' lst //i默认是0

awk中的变量:不需要事先声明,第一次使用时即视为声明,初始值为0或空字符串。变量名区分大小写。变量类型根据上下文解释成字符串或是数字,并自动转换。变量直接引用,不需要加$。

awk中的表达式:由字符串、数字、变量和运算符组合在一起。字符串总是加双引号,可以使用转义符\,八进制字符前加\,十六进制字符前加\x。将字符串作为操作数与数字计算时,字符串会被转换为数字0。

echo " " | awk '{x="sun";y="com";print x"."y}'
sun.com

echo " " | awk '{x="1";y="com";print x+y}'
1

比较与逻辑运算符:用于比较表达式的值,返回真值结果。

运算符含义
<, <=, >, >=

小于,小于等于,大于,大于等于

==, !=等于,不等于
&&, ||, !逻辑与,逻辑或,逻辑非
~ /rexp/匹配正则表达式rexp
!~ /rexp/不匹配正则表达式rexp
i in array数组元素array[i]是否存在
$4 == "sales" //第4个字段是字符串"sales"
NR ==5, NR==8 //第5到第8行连续4行
$6 >= 12000   //第6个字段的数值大于等于12000

匹配正则表达式:awk支持基本正则表达式(不包括IRE和TRE)和扩展正则表达式。

$2 ~ /john/        //第2个字段中包含john
$0 ~ /^john/       //整行以john开头
$3 !~ /^[0-9]+$/   //第三个字段不是数字
/^$/               //空行

将awk程序写成文件:将awk程序部分写在文件中。使用-f选项指定文件名,执行文件中的awk程序。注意:文件中的程序不放在引号内。

awk -F: -f script.awk lst

BEGIN和END程序段:可以在awk文件中加入BEGIN和END程序段。BEGIN程序段在awk程序主体之前执行。END程序段在awk程序主体之后执行。

BEGIN {
    printf "\tEmployee List\n\n"
}
{
    total+=$6
    printf "%3d %-20s %-12s %d\n", ++count, $2, $3, $6
}
END {
    printf "\n\tThe average salary is %6d\n", total/count
}

位置参数:当在shell脚本中运行awk命令时,awk程序可以引用shell脚本的命令行参数。引用时为了跟自身的字段引用相区别,对位置参数的引用需要加引号。

awk '$6 > '$1' {print}' $2
//命令行参数要加单引号
//第六号大于$1的,输出
//最后一个$2不在awk里面,不用加单引号

数组:数组不需要事先定义,第一次使用即时声明。数组元素默认初始化为0或空字符串。数组自动扩展。数组索引是字符串,array[1]和array["01"]是不一样的。

BEGIN {
    month[1]="Jan"; month[2]="Feb"; month[1000]="illegal month";
    printf("Month 1 is %s and month 5000 is %s\n", month[1], month[1000]);
    printf("Month 500 is %s and month 5000 is %s\n", month[500], month[5000]);
    delete month[1];
    printf("Month 1 is %s and month 2 is %s\n", month[1], month[2]);
}

wh1516@PinkRAY:~/桌面$ awk -f exparray.awk
Month 1 is Jan and month 5000 is illegal month
Month 500 is  and month 5000 is 
Month 1 is  and month 2 is Feb

环境数组:awk的内置数组。用于存储shell环境变量。

awk 'BEGIN {
print "HOME=" ENVIRON["HOME"]
print "PATH=" ENVIRON["PATH"]
 }'
wh1516@PinkRAY:~/桌面$ awk 'BEGIN {
> print "HOME=" ENVIRON["HOME"]
> print "PATH=" ENVIRON["PATH"]
>  }'
HOME=/home/wh1516
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

内置变量:awk内部变量,会自动赋值。用户可根据需要对其重新赋值。

变量名功能默认值备注
NR当前读取行的记录数- 
FS输入字段分隔符空格FS的赋值放在BEGIN中
OFS输出字段分隔符空格print语句中参数的分隔符
OFMT默认浮点数格式%.6f 
RS记录分隔符换行符可将多行合并成一条记录
NF当前行的字段数- 
FILENAME当前输入文件- 
ARGC命令行中的参数个数- 
ARGV包含参数列表的数组- 
ENVIRON包含所有环境变量的数组- 

内置函数:

函数说明
int(x)返回x的整数值
sqrt(x)返回x的平方根
length()返回整个行的长度
length(x)返回x的长度
tolower(s)将字符串s变为小写
toupper(s)将字符串s变为大写
substr(str,m)从str的第m个位置开始截取剩余子串
substr(str,m,n)从str的第m个位置开始截取长度为n的子串
index(s1,s2)返回字符串s2在s1中的位置
split(str,arr,ch)以ch为分隔符,将str划分到数组arr中,返回字段数
system("cmd")运行命令cmd,并返回其退出状态
查找file中长度超过255的行:
    awk 'length() > 255' file

查找1940-1950年之间出生的员工:
    awk -F: 'substr($5,7,2) >= 40 && substr($5,7,2) <=50' lst

将日期格式转换为YYYYMMDD格式:
    awk -F: '{split($5,ar,"/"); print "19"ar[3]ar[1]ar[2]}' lst

在文件开头打印当前日期:
    awk 'BEGIN {system("date")}' file

控制流语句:

if (条件) {语句}
else {语句}

while (条件) {语句}

for (i=1; i<=10; i++) {语句}
for (x in array) {语句}

为每一行薪资计算税款:
awk –F: '{ 
    if ($6 <= 30000) tax=0 
    else { if ($6 > 30000 && $6 <=50000) tax=($6-30000)*0.15 } 
}' lst

将每一行的字段逆向输出:
awk –F: '{ line=$NF 
    for (i=NF-1;i>0;i--) 
        line=line":" $i 
    print line 
}' lst

输出所有环境变量的值:
awk 'BEGIN { 
    for (key in ENVIRON)
        print key "=" ENVIRON[key] 
}'

根据职位分组,统计每个职员的员工数量:
awk -F: '{count[$3]++}
END { for (pos in count)
    printf "%10s %4d\n", pos, count[pos]
}' lst

 

S7-200SMART 的运动控制(一)向导配置具体步骤(图文) 阅读详情

相关推荐

Windows非分页缓冲池内存泄漏实战:PoolMon与RAMMap高效排查指南

本文详细介绍了Windows系统中非分页缓冲池内存泄漏的实战排查方法。当系统出现卡顿且内存占用异常增长时,通过RAMMap工具快速定位非分页缓冲池异常,并利用PoolMon监控内核内存分配标签,精准锁定泄漏源。文章提供了从确认症状、安装工具到使用findstr命令溯源驱动文件的完整五步排查流程,并总结了常见泄漏标签与解决方案,帮助用户高效解决深层系统内存问题。

weixin_28455801的博客 1011

linux常用命令解析一(常用系统工作命令echo)

一.echo 输出指定的字符串或者变量 用法:echo (选项) [字符串 | $变量] 选项:-e:激活转义字符。 使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: \a发出警告声; \b删除前一个字符; \c不产生进一步输出 (\c 后面的字符不会输出); \f换行但光标仍旧停留在原来的位置; \n换行且光标移至行首; \r光标移至行首,但不换行; \t插入tab; \v与\f相同; \\插入\字符; \nnn插入n...

weixin_39699362的博客 346

Allegro Design Entry CIS 与 OrCAD Capture CIS:PCB设计工具链中的双雄对决

本文深入对比了Cadence旗下两大原理图设计工具Allegro Design Entry CIS与OrCAD Capture CIS。Allegro Design Entry CIS源自Concept HDL,定位高端,强调自顶向下的层次化设计和与Allegro PCB Editor的无缝约束管理,适合大型复杂系统及团队协作。OrCAD Capture CIS则以其出色的易用性、广泛的兼容性和强大的CIS数据库功能著称,是中小型项目及跨工具链协作的通用选择。文章从历史渊源、核心功能、适用场景等多维度剖析,

bush的博客 488

echo 追加至文件

在Shell编程过程很多时候会使用echo 并输入到日志文件中。写日志的时候有两种情况,一种是一次写入文件空,再写的时候就将之前的内容给覆盖掉,如何实现追加内容呢? 1.覆盖写入: echo "日志内容" > 文件 2.追加写入: echo "日志内容" >> 文件 3. 换行写入: echo \ >> 文件 或者 echo -n >> 文件 4. 日期写入: 以下格式是"2016-11-11

craftsman2020的博客 7968

关于token无痛刷新的两个方案

目录方案一方案二 方案一 思路: 后端需要返回一个token过期的时间,在请求发起前拦截每个请求,判断token的有效时间是否已经过期,如果已过期,则暂时将请求挂起,先刷新token后再继续请求。 前期思考: 返回过期时间是为了判断是否过期的,但是如果服务器时间和系统时间不一致呢? 如果同时发起多个请求时怎么办? 实现: 因为是在请求前进行拦截,所以这里用axios的axios.interceptors.request.use()方法 首先,关于服务器时间和系统时间不一致的问题,我的解决方法是:

Yugoup的博客 2716

Edge浏览器IE模式全攻略:从企业应用到老旧网站兼容(含常见问题解答)

本文详细解析了微软Edge浏览器的IE模式,这是解决企业遗留系统与老旧网站兼容性问题的关键技术。文章从核心原理出发,提供了从个人用户临时启用到企业级组策略部署的完整配置指南,并深入探讨了文档模式调优、ActiveX控件处理等高级技巧,最后汇总了常见问题排查与安全实践,帮助用户高效平衡兼容性与现代化浏览体验。

weixin_29227425的博客 610

Linux echo命令详解

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。此外,也可以直接在文件中写入要写的内容。也可以用于脚本编程时显示某一个变量的值,或者直接输出指定的字符串。命令格式如下:echo 【选项】 【输出内容】共有三种格式。

sea_kingdom的博客 3万+

告别ArcGIS小红叉:从‘无法验证登录信息’到成功连接在线资源的完整排错记录

本文详细记录了从Windows便签的网络错误到ArcGIS连接问题的完整排错过程。通过分析代理服务器、DNS配置和系统网络设置,解决了ArcGIS无法验证登录信息的问题,提供了实用的网络优化方案和技术排错思路。

weixin_26800111的博客 390

Linux echo命令(在终端输出文本)

echo是Linux和Unix系统中常用的一个命令行工具,主要用于在终端输出文本。该命令非常简单,但是它在脚本编程和日常系统管理中扮演着重要的角色。

Dontla的博客 1万+

华为OD面试手撕真题 - 最大数

华为OD面试手撕真题 最大的数 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 342

STM32N6570-DK识别STLINK问题,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2209

linux echo -e 用法

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用 echo(选项)(参数)选项 -e:激活转义字符。使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: •\a 发出警告声; •\b 删除前一个字符; •\c 最后不加上换行符号; •\f 换行但光标仍旧停留在原来的位置; •\n 换行且光标移至行首; •\r 光标移至行首,但不换行; •\t 插入tab; •\v 与\f相同; •\\ 插入\字符; •\nnn 插入nnn(八进制)所代表的ASCII字

hehexu_的博客 3957

UCIE Specification详解(八)

Logical Physical Layer(逻辑物理层)

Crazzy_M的博客 1608

Linux-Chap3-Shell编程入门

Chap3 Linux Shell编程入门 Shell的工作原理 Shell:用户和操作系统之间的接口。 当用户登录到系统时,有一个shell进程随之启动,并在用户注销时终止。 用户输入的命令时shell的输入。 shell处理命令的步骤:①查找命令中的元字符 ②把这些元字符替换成对应的实际操作参数 ③将重新生成的指令传给内核执行 ④等待指令完成,提示符重新出现,等待下一条命令。 Shell种类: • Bourne系列: • Bourne Shell (/bin/sh) • Korn She

Pinkray_07的博客 391

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

gnu linux额外支持的运算符,《Shell编程从入门到精通》张昊-chap1-8

缘起20190314开始复习及学习吧;张昊编著;内容目录 i(9/314)全书11章chap1 第1个Shell程序 1(13/334)1.1、第一道菜[echo.sh]#!/bin/shcd /tmpecho "hello world!"(1)每一行代码是啥意思;(2)如何运行程序?1.2、如何运行程序1.2.1 选婿:位于第一行的#!匹配解释器。解释器路径可以用whereis bash查。自删...

weixin_39607473的博客 282

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Linux-Chap1-Linux系统概述

Chap1 Linux系统概述 Linux概述 Linux发展背景:UNIX、MINIX、GNU、Linux内核、GPL协议、POSIX标准 Linux系统安装 Linux操作系统特点: C语言设计与编写,可移植性强 多用户同时访问,适合工作站和服务器环境 通过shell与操作系统互动 Linux体系结构: Linux内核: 内核是操作系统核心,在启动时加载进内存 内核直接与计算机硬件交互 管理系统内存,调度任务进程,执行系统调用 Shell: 用户与操作系统内核的交互接口 .

Pinkray_07的博客 246

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Linux bash shell 编程笔记(基础篇)

Linux - bash 编程笔记(基础篇)- 小白初学。

一些笔记 691

Linux Shell 介绍及常用命令汇总

有关 Shell 的介绍和常用指令的汇总整理。因为笔者会一直使用 Linux,所以本文也会不断丰富和充实~

一些笔记 1904

Linux Shell 脚本攻略 chap 1 小试牛刀

1. 简介 一般在shell 脚本的起始, 需要指定解释器的路径 #! /bin/bash 使用 # 作为注释标记符 shell 脚本如果需要执行, 必须添加 执行(x) 权限, 一般可以 chmod a + x xxx.sh shell 的设置文件 ~/.bashrc ~/.bash_profile ~/.bash_history 2. 终端打印 双引号中的特殊字符需要使用 转义符 显示

zhyh1435589631的专栏 613

Chap2:什么是shell[The Linux Command Line]

1 shell - a program that takes keyboard commands and passes them to the operating system to carry out 2 bash - an acronym for 'Bourne Again SHell,is an enhanced replacement for sh, the original Unix ...

weixin_30794851的博客 70

嵌入式Linux设备通过CDMA网络拨号上网:PPPD移植与配置实战

点对点协议(PPP)是串行链路上建立网络连接的基础协议,其核心守护进程PPPD负责链路建立、认证协商与数据封装。在嵌入式Linux系统中,PPPD是实现设备通过串口连接无线模块(如CDMA、GSM模块)接入互联网的关键组件。其技术价值在于为无图形界面或资源受限的嵌入式设备提供了稳定、标准的网络接入方案,广泛应用于工业物联网、远程监控、老旧设备升级等对网络覆盖和成本敏感的场景。通过交叉编译将PPPD移植到ARM架构目标板,并配合Chat脚本与认证文件,即可完成对电信CDMA等2G/3G网络的拨号配置。本文以*

weixin_30388677的博客 410

Chap1 引言[The Linux Command Line]

附上链接:http://billie66.github.io/TLCL/book/chap01.html Content: part1-Introduction part2-Learning The shell starts our exploration of the basic language of the command line including such things a...

weixin_30481087的博客 111

Chap6:使用命令[The Linux Command Line]

1 type-显示命令的类型 $type ls ls is aliased to `ls --color=auto' 2 which-显示一个可执行程序的位置 有时候在一个操作系统中,不只安装了可执行程序的一个版本。虽然在桌面系统中这并不普遍, 但在大型服务器中却很平常。为了确定所给定的执行程序的准确位置,使用 which 命令: $ which ls /bin/ls ...

weixin_30314813的博客 100

shell脚本学习总结

3.位置参数变量:$0脚本名、$1~$9前 9 个参数、${10}10 位以上参数、$#参数总数、$*/$@全部参数、$$当前进程 PID、$?${arr[@/*]}全量取值、${#arr[@]}数组长度、${!常用参数-i忽略大小写、-n行号、-v反向匹配、-r递归、-o只输出匹配内容、-A/B/C查看匹配前后行,用于筛选配置、统计用户 shell、过滤进程。四种语法:test表达式、[ 表达式 ]、[[ 表达式 ]]、((数值运算)) 注:前三者支持文件 / 字符串 / 数值,(())仅整数比较。

2403_89680942的博客 219

Linux seq命令深度解析:从数字序列生成到Shell脚本自动化实战

在Linux和Unix-like系统的Shell编程与系统管理中,序列生成是一项基础且高频的操作需求,它直接关联到批量任务自动化、数据处理和脚本编写的效率。其核心原理是通过预设的起始值、步长和终止值规则,系统化地输出数字序列,为循环控制、测试数据构建和文件批量操作提供结构化输入。这一技术的核心价值在于将重复性手工操作转化为可编程的自动化流程,显著提升运维开发和数据处理场景下的工作效率。典型的应用场景包括批量创建/重命名文件、自动化测试数据生成、并行任务分发以及日志轮转等日常运维任务。本文聚焦于Linux s

weixin_30561425的博客 343

Linux 使用笔记(本人出品,必属精品)

Linux 的使用笔记

一些笔记 1123
上一篇: Linux-Chap3-Shell编程入门
下一篇: Linux-Chap5-C语言编程
Pinkray_07
博客等级 码龄7年 122粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值