linux_shell笔记(六)

Linux学习笔记3—Shell Shell 本质是一个命令行解释器,在用户和内核交互时起翻译作用。外部应用软件通过 Shell 与内核通信。全局变量所有子 Shell 生效env/ printenvenv | grep HOME # 过滤全局变量echo $HOME # 输出家目录局部变量仅当前 Shell 生效set基础操作a=1 # 定义局部变量(等号无空格)export a # 转为全局变量echo $a # 输出变量值unset a # 释放变量。 阅读详情

进程是一条命令在linux 上的执行。用户登录时启动的shell ,也是一条命令,或者进程。但用户在命令行中输入一个linux 工具名时,就启动了一个进程。当用户运行一个shell 脚本的时候,系统创建另一个shell 进程,并为脚本中每行命令创建另外的进程。根据用户调用脚本方式的不同,脚本既可以由当前shell 运行(利用'.' 命令),也可以由当前shell 的一个子shell 运行。后一种方式更加普通。如果用户输入一条内置命令如cd ,此时系统并不会创建进程。

>sleep 10 &

>ps -f

>sleep 10 &

>ps -f

选项'-f' 调用ps 时,ps 显示每个进程信息的完整列表。

>pstree

>pstree -p


执行命令

fork 和 sleep 当用户向shell 中输入一行命令时,shell 创建一个子进程来执行这条命令。当子进程执行该条命令期间,父进程转入睡眠状态,等待被唤醒。当子进程的命令执行完毕之后,它将通过其退出状态通知其父进程自己执行成功或失败,然后消逝。父进程被唤醒,然后提示用户输入另一个命令。


后台进程 当通过在命令结尾处加上 & 符号将进程置于后台运行时, shell 创建一个子进程,但是 shell 并不睡眠,也不等待子进程运行完毕。子进程在后台运行独立于他的父进程。

Shell 运行内置命令的时候, shell 并不创建新进程。

默认情况下,变量只适用于进程本地范围。当进程创建一个子进程时,并不将变量传递给它的子进程。使用 export 内置命令可以将变量设为全局而允许子进程的访问。


命令历史机制:它维护了用户最近发出的命令行的列表,这为重新执行列表中任何事件提供了一个便捷的方式。用户也可通过查看历史记录修正错误。

>history | less

>history | tail

>history 10


HISTSIZE 在一次会话期间保存的最大事件数目

HISTFILE 历史文件的位置

HISTFILESIZE 会话之间保存的时间最大数目

>echo $HISTSIZE $HISTFILE $HISTFILESIZE


重新执行和编辑命令 可以重新执行历史列表中的任何事件。内置命令 fc 使用感叹号 使用 Readline 库


fc 显示编辑和重新执行命令

fix command 修改命令,可用来显示历史列表内容,并可以编辑和重新执行前面的命令。


显示历史列表中的命令,不带参数将显示最近16 个命令。

>fc -l

>fc -l [first [last]]

>fc -l 100 200 | less

>fc -l vim apropos | less

>fc -l 1027 1027


编辑和重新执行前面的命令:

> fc [-e editor] [first [last]]

'-e' 调用fc 时,如果后面还带某个编辑器的名字,那么fc 将调用该编辑器,并将事件放到工作缓冲区中。如果不带first 和last 参数,fc 默认最近命令。如果设置了FCEDIT ,那么没有必要在命令行指定使用的编辑器。

使用vim 编辑最近使用的命令

>fc -e vi

设置FCEDIT 并利用fc 编辑最近使用的命令,使用的编辑器将依照FCEDIT 的设置。

>export FCEDIT=/usr/bin/emacs

>fc

fc 调用编辑器编辑指定命令

>fc 21

调用编辑器编辑以字母vim 开头的最近事件到206 之间的事件出

>fc vim 206

fc 利用编辑器编辑相关命令,退出编辑器的时候, shell 将执行存放在编辑器缓冲区内的任何内容,如果需要不执行命令,那么退出之前需要删除缓冲区中的所有内容。

>echo $PS1

>PS1=”/u@/h:/w/!$”

>ls -li

>fc -e vi

>whereis vim

>export FCEDIT=”/usr/bin/vim”

>fc 509

>fc 500 509


不调用编辑器而重新执行命令

调用 fc 时带上 '-s' 选项那么将跳过编辑阶段而重新执行该命令

>fc-s 509

>fc -s


使用感叹号引用事件

! 除非后面紧接着空格符 换行符 =或者( ,否则立即开始某个历史事件。

!! 前一个命令

!n 历史列表中编号为 n 的命令

!-n 往前第n 条命令

!string 最近以 string 开始的命令行

!?string[?] 包含sting 的最近命令行

!# 当前命令 目前正在输入的部分

!{event} !{-3}3 后跟着3 的第3 个最近执行的命令

>echo example*

>!!

>readelf example

>!! | less

>!515

>history 10

>!whereis

>!?example


字标志符

字标志符指定了事件中的某个字或者一组字。这些字的编号从 0 开始 ( 命令行的第一个字通常是命令名 ) 。为了指定前一个事件中的某个字,在事件标识符 (!107) ,后面跟一个冒号和一个表示该字在这个命令中的标号。

n 第n 个字;字0 为命令名

^ 第一个字,紧跟命令之后

$ 最后那个字

m-n 从编号m 到n 的所有字

n* n 到最后

* 除命令名以外所有字

>echo $PS1

>PS1='/u@/h:/w-/!/$'

>echo apple grape orange pear

>echo !109:*

>echo !109:2-4

>echo !109:$

>!109

>!109:0-$

>cd example

>cat example.sh

>vim !$

!$ 表示前一个命令的最后一个字。

替换修饰符 语法如下:

[g]s/old/new


>cat exampleji.sh

>!!:s/exampleji/example

快速替换符是^ 。可以用它来执行最近事件同时改变该事件的内容。

>cat exampleji.sh

>^exampleji^example


别名:别名是一种名称, shell 将其翻译成另一个名字或者命令。 定义别名语法如下:

>alias [name[=value]]

如果value 中含有空格或者制表符,需要利用引号将其括起来。别名并不替换自己,这避免了在处理如下别名时可能存在的递归。

>alias ls='ls -F'

用 unalias 删除别名。 不带参数的alias 将列出当前所有别名的列表。

>alias

单双引号的区别:value 用双引号引起来,那么当创建别名时,value 中任何变量都将扩展。如果将value 用单引号括起来,那么在使用该别名之前变量都不会被扩展。

>alias dirA=”echo working directory is $PWD”

>alias dirB='echo working directory is $PWD'

>alias dirA dirB

>cd ..

>dirA

>dirB

shell 只检查那些简单的,未经引用的命令,看其是否为别名。那些相对或者绝对路径名的命令和引用命令都不被检查。在命令前加反斜杠或者执行命令时使用绝对路径,将不进行别名替换。

>alias

>ls

>/ls

>whereis ls

>/bin/ls


别名示例:

>alias r='fc -s'

>alias l='ls -ltr'

>alias zap='rm -i'

>ls

>r

>l

>zap example*

>alias ls='ls -F'

>alias ll='ls -l'

>ll ( 结果同ls -F -l)


>unalias r l zap ll

>alias

>unalias dirA dirB


函数 shell 函数类似于 shell 脚本,里面存放了一系列可在后期执行的命令。 然而因为shell 函数存放在RAM 而不是磁盘文件中,因此shell 访问函数的速度要比访问脚本速度快得多。shell 函数的执行和调用在同一个shell 中进行的。可以使用 unset 删除 shell 函数。如果 shell 变量和函数同名则 unset 删除 shell 变量,如果再次用相同的名字调用 unset ,就会删除这个函数。

声明函数语法如下:

>[function] function-name() RETURN

{ RETURN

command RETURN

} RETURN


>function whoson() RETURN

{ RETURN

date RETURN

echo “users currently logged on” RETURN

who RETURN

} RETURN

>whoson

>function whoson2() { who; date; } RETURN

>cat >whoson.sh RETURN

date RETURN

echo “users currently logged on” RETURN

who RETURN

COUNTROL+D

>chmod u+x whoson.sh

>./whoson.sh

>set | grep whoson

>function echo_arg() RETURN

{ RETURN

echo “The arg is $1 && $2” RETURN----”” 不可省略

echo The arg is $1 $2 $3

} RETURN

>echo_arg arg1 arg2 arg3

>unset echo_arg whoson


控制shell 的特性:利用 set 和 shopt 控制 shell 特性

有两种类型的命令行选项,短选项和长选项,短选项由一个连字符后面跟一个字母构成,而长选项由两个连字符后面跟多个字母构成。同一命令行上的长选项必须放在短选项之前。

--: 在命令行中表示选项的结束,后面的字将作为参数,即使他们以连字符开头。

shell 特性,可以通过打开或者关闭bash 的功能的方式来控制他的行为。内置命令set 控制一部分功能,shopt 控制另一部分功能。

set +-o 开启和关闭 shell 特性,‘ -o’ 开启特性, '+o' 关闭特性。

>set -o noclobber

>set -o vi

>set +o vi

>set -o

>set +o


>shopt -s

>shopt -u

>shopt -s dotglob

>shopt -u dotglob

'-s' 开启特性, '-u' 关闭特性。


处理命令行:

无论是采取交互式还是运行shell 脚本,bash 在处理命令行之前都需要读取该命令行,即bash 在处理一条命令之前总是读取至少一行命令。如果bash 知道某条命令跨越多行,则在处理该命令之前将读取整条命令。

>echo 'this is RETURN

echo .e.g' RETURN

>function hello() RETURN

{ RETURN

echo hello RETURN

} RETURN

在读取一条命令之后,bash 对该命令应用历史扩展和别名扩展。


历史扩展:bash 将历史命令转换到可执行命令行的过程。对于交互式 shell 历史扩展默认是开启的,使用 'set +o histexpand' 可将其关闭;而非交互式 shell(shell 脚本 ) 不能使用历史扩展。

>!!

>!108


别名替换:别名将一个简单命令的第一个字替换为一个字符串。默认情况下shell 的别名特性是开启的,在非交互式shell 中则是关闭的。使用'shopt -u expand_alias' 可将其关闭。

>alias ls='ls -F'

>ls

>alias

>unalias ls


解析和扫描命令行:在处理完历史命令和别名之后,bash 并不立即执行命令。首先是将命令行解析成标记或者字,然后shell 扫描每个标记,查找特殊字符和模式,shell 需要对他们采取某些动作。进行命令行扩展。


命令行扩展:

在交互式用法和非交互式用法中,shell 在将命令行传递给被调用程序之前均使用命令行扩展。按照下列顺序进行命令行扩展:

花括号扩展

代字符扩展

参数扩展和变量扩展

算数扩展

命令替换

分词

路径名扩展

处理替换


引用删除:在处理完命令行扩展后,bash 将不是扩展结果的单引号 双引号和反斜杠从命令行中删除。称为引用删除。


扩展顺序

bash 执行命令行扩展的步骤的顺序会影响到命令的解释。

>SENDIT=”>/tmp/saveit”

>echo xxx $SENDIT

命令的运行结果是:shell 并不进行输出的重定向,他在计算变量的值之前识别输入输出的重定向。其结果是将'>/tmp/saveit' 最为参数传递给echo 。

切记双引号和单引号将使 shell 在进行扩展时表现出不同的行为。双引号允许参数和变量的扩展,但是抑制其他类型的扩展,而单引号则抑制所有的扩展。


花括号扩展:当不能利用路径名扩展时,它为指定文件名提供了一个便利方式。尽管花括号扩展主要用于指定文件名,该机制还可以用来产生任意字符串。

花括号扩展在交互式和非交互式 shell 中都是默认开启的。 可使用'set +o braceexpand' 关闭。

>ls

>echo example{1,2,3}.sh

当有较长的前缀或者后缀时,花括号扩展很有用,避免多次输入长的路径名

>cp /usr/local/src/c/{main,f1,f2,tmp}.c .

>mkdir example{A,B,C}

>ls -F

>rmdir example{A,B,C}

>mkdir example[A-C]

>ls

>rmdir example[A-C]


带字符扩展:

当代字符出现在命令行某字的起始处时,它就属于一个特殊的字符。bash 将后面的字符串( 在第一个斜杠之前或者如果没有斜杠,到达字的末尾) 作为一个可能的登录名。如果可能的登录名是空的,那么shell 将用HOME 变量的值取代这个代字符。

>echo $HOME

>echo ~

>echo ~/example.sh

>cp ~/example/example.sh .


如果后面的字符串构成一个合法的登录名,那么shell 将用与该登录名相对应的主目录路径名来替换这个代字符和名字,如果他不为空且不是一个合法的登录名,shell 将不进行任何替换:

>echo ~root

>echo ~terry

>echo ~nouser


参数扩展和变量扩展:

后面没有开放的圆括号的 $ 将引入参数或者变量扩展。参数包括命令行,或者位置参数和特殊参数。变量包括用户创建的变量和关键字变量。

如果参数和变量用单引号引起来或者开头的$ 符号被转义,那么这些参数和变量将不会扩展。



算术扩展:

shell 计算算术表达式的值并用该值替换表达式,这就是算数扩展。

$((expression))

不需要在expression 中的变量名前加上$ 符号。

>cat >age_check.sh RETURN

#!/bin/bash RETURN

echo -n “How old are you?” RETURN

read age RETURN

echo “Wow, in $((60-age)) years, you'll be 60!” RETURN

CONTROL+D

>chmod u+x age_check.sh

>./age_check.sh


>x=2 y=4

>echo $((2*$x+5*$y))

>echo $((2*x+5*y))

>unset x y


>x=3+6 y=4+7

>echo $((x+y))

>echo $x

>x=$((3+6))

>echo $x

>unset x y


命令替换:

利用命令的输出来替换该命令。

$(command)

shell 将在子shell 中执行command 并用command 的标准输出取代command ,连同两边的标点。

>echo $(pwd)

>echo “You are using the $(pwd) directory.”

>echo $(ls -l)

 


分词:

参数和变量扩展,命令替换和算术扩展的结果都可以作为分词的候选者,bash 利用IFS 定义的每个字符作为可能的分割符,将这些候选着划分成字或者标记。


路径名扩展:

路径名扩展又称为文件名生成或者文件名补全,它表示解释模糊文件引用以及替换合适文件名的列表的过程。如果 bash 在处理模糊文件引用时,找不到任何匹配该模式的文件,那么带有模糊文件引用的标记将被保留。

>echo example*

>echo *

>echo example?

>echo .*

>ls .*

>ls *

>echo nofile*


引用:

用双引号把参数括起来将使 shell 抑制路径名扩展和所有除参数扩展和变量扩展之外的其他扩展。而用单引号把参数括起来会抑制所有类型的扩展。

>echo “example* $HOME”

>echo 'example* $HOME'

>echo example* $HOME

>a=example*

>echo $a

>a='example*'

>echo $a

>echo “$a”

>echo '$a'

>unset a


 

汽车软件工程师必看:ASPICE流程实战指南(附完整产物清单) 本文为汽车软件工程师提供ASPICE流程实战指南,详细解析如何搭建合规开发环境、各阶段文档产出清单及工具链整合策略。通过实战案例和模板资源,帮助团队高效实施ASPICE标准,提升软件开发质量与效率。 阅读详情

相关推荐

STM32智能头盔DIY全攻略:从心率监测到跌倒报警的完整实现

本文提供了基于STM32的智能头盔完整DIY实现方案,涵盖从心率监测到跌倒报警的核心功能。详细解析了系统设计、硬件搭建、软件算法及系统联调,重点介绍了STM32主控、MAX30102心率传感器和MPU6050姿态传感器的应用,并分享了跌倒检测算法与功耗优化等实战经验,为嵌入式开发与物联网创新项目提供全面指导。

sony5的博客 503

gfortran for MPICH

export FC="gfortran -O2 -ff2c -fno-underscoring "export F77_GETARGDECL=" "export CC="gcc -O2 "export CXX="g++ -O2 "export F90="gfortran -O2 -ff2c -fno-underscoring "./configure --prefix=/opt/mpich -rs

xlsp的专栏 1200

从零构建Elasticsearch MCP代理:自然语言查询背后的技术揭秘

本文深入解析如何从零构建Elasticsearch MCP代理,实现自然语言查询的技术架构与实战应用。通过MCP协议与Elasticsearch的结合,系统能够将自然语言转换为精确的DSL查询,提升非技术用户的数据查询效率。文章详细介绍了核心架构、DSL生成引擎、端到端系统搭建及生产环境最佳实践,为开发者提供全面的技术指南。

lll78的博客 878

Linux命令fc,来学一学在Linux中使用fc命令

fc(FixCommands 的缩写)是个 shell 内置命令,用于在交互式 shell 里列出、编辑和执行最近输入的命令。你可以用你喜欢的编辑器编辑最近的命令并再次执行,而不用把它们整个重新输入一遍。除了可以避免重复输入又长又复杂的命令,它对修正拼写错误来说也很有用。因为是 shell 内置命令,大多 shell 都包含它,比如 Bash 、 Zsh 、 Ksh 等。在这篇短文中,我们来学一学...

weixin_30322901的博客 644

Mind+掌控板实战:5分钟搞定Easy IoT的MQTT通讯(附完整代码)

本文详细介绍了如何利用掌控板和Mind+图形化编程软件,快速实现基于Easy IoT平台的MQTT通讯。通过清晰的步骤讲解和完整的代码示例,指导用户完成从云端配置、Wi-Fi连接到MQTT消息发布与订阅的全过程,帮助初学者轻松构建物联网设备间的双向对话系统。

weixin_29300241的博客 451

雷电模拟器9.0最新过检测实战:从修改Build.prop到Xposed模块配置全流程

本文提供了一套针对雷电模拟器9.0的深度伪装实战方案,旨在绕过应用检测。内容涵盖从理解检测机制、获取Root权限、修改Build.prop等静态伪装,到利用Xposed/LSPosed框架进行运行时Hook的动态伪装全流程,帮助用户构建无痕的“真机”环境以稳定运行应用。

z4a5b6的博客 868

【编译器】变量名称

环境变量  英文描述  中文描述  举例  CC  C compiler command  C编译器  export CC=gcc  export CC=icc  CFLAGS  C compiler flags  C编译器选项  export CFLAGS='-O3 -fPIC -fopenmp -I/path/to/your/include'

葛慧的博客 3771

新四化浪潮下,中年整车诊断工程师的黄金突围路

摘要 本文探讨了汽车电子诊断工程师在当前行业变革中的独特优势与发展路径。作者作为从业者指出,整车诊断岗位在汽车"新四化"浪潮中呈现"逆生长"特性:技术壁垒高、经验复利强、市场需求持续增长。中年工程师凭借丰富的案例积累和实战经验成为行业稀缺人才,薪资水平显著高于同龄段其他技术岗位。文章分析了四条职业发展路径(技术专家、技术管理、细分深耕、横向拓展),并警示了三大职业风险(执行层局限、技术停滞、成果沉淀不足)。最后提出具体建议,强调掌握UDS高阶、DoIP以太网诊断等核心技术的重要性,为中年技术人提供了清晰的职

Soly_kun的博客 309

Linux fc命令使用

fc命令与history结合会很有效,下面贴出其详细说明http://www.allwiki.com/wiki/Linux命令:Fc使用权限所有用户语法格式打开一个编辑器去修改或重新执行以前输入的命令fc [ -r ] [ -e Editor ] [ First [ Last ] ]生成一个以前输入的命令的列表fc -l [ -n ] [ -r ] [ Fi

老好人(廖海仁)的专栏 9773

ESP32-IDF开发之旅 外设篇④ 串口通信 Uart

ESP32-S3 UART串口通信详解 本文介绍了ESP32-S3的UART串口通信配置流程,涵盖硬件引脚分配、参数设置、数据收发等关键步骤。

单片机菜鸟哥的博客 496

2024顶级提示工程工具:提升效率的12个神器

LlamaIndex虽然本身不是直接的提示词编辑工具,但其整个设计都围绕着如何有效地将外部知识融入LLM的提示词。它提供了结构化的方式来管理“上下文窗口”——即哪些私有数据应该被包含在提示词中。通过优化索引结构和检索策略,可以确保提示词中包含最相关、最高质量的上下文信息,从而大幅提升LLM基于私有数据回答问题的准确性和相关性。同时,LlamaIndex允许开发者针对不同的查询类型和数据特点定制提示词模板,这使得提示词的复用和优化更加系统化。

AIGC应用创新大全的博客 1099

Linux fc命令

使用权限 所有用户 语法格式 打开一个编辑器去修改或重新执行以前输入的命令 fc [ -r ] [ -e Editor ] [ First [ Last ] ] 生成一个以前输入的命令的列表 fc -l [ -n ] [ -r ] [ First [ Last ] ] 生成带执行时间的以前输入的命令的列表 fc -t [ -n ] [ -r ] [ First

积少成多 2137

Python全栈入门到实战【基础篇 22】生成器与迭代器:底层逻辑与实战场景

Python迭代器与生成器:惰性求值的高效实践 摘要:本文深入解析Python中迭代器和生成器的核心机制与应用场景。迭代器通过实现__iter__()和__next__()方法实现惰性求值,适合处理大数据集和无限序列。生成器作为迭代器的简化实现,通过yield关键字自动实现迭代器协议,代码更简洁。文章详细对比了可迭代对象与迭代器的区别,演示了自定义迭代器和生成器函数的实现方式,并介绍了生成器表达式这一高效替代列表推导式的方案。通过斐波那契数列等实例,展示了惰性求值在内存优化方面的优势,以及生成器在流式数据处

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 3263

Linux复习笔记(六)shell编程

本文简要介绍了Shell编程的基础知识和常用操作。首先,Shell作为用户与Linux内核交互的桥梁,既是命令解释器,也是一种脚本语言。文章详细讲解了Shell脚本的编写规范、变量类型及其操作、算术与逻辑运算符的使用、流程控制语句(如if、case)、正则表达式的基本语法以及循环结构(如for、while)。此外,还涵盖了输入输出操作、文件判断和综合案例,如系统信息菜单和文件遍历统计。通过这些内容,读者可以快速掌握Shell编程的基本技能,并应用于实际脚本编写中。

永远怀着至诚之心拥抱世界 1384

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Linux学习笔记六-shell

变量: [root@www ~]# name=dark [root@www ~]# echo $name 变了设置规则: 1.“=”号两边不能有空格; 2.只能是英文和数字,不能以数字开头; 3.变量有空格可以用单引号或者双引号将内容结合起来,     但是双引号内到特殊字符可保持原本到特性,如: var="lang is $LANG",则 echo $var输出 lang is

.|Zihuatanejo 444

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Linux笔记(六)初学Shell脚本

编写Shell脚本 Shell 脚本命令的工作方式有两种:交互式和批处理。 交互式: 用户每输入一条命令就立即执行 批处理: 由用户实现编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令 编写简单的脚本 Shell 脚本文件的名称可以任意,但为了避免被误以为是普通文件,通常将.sh 后缀加上,以表示是一个脚本文件。 第一行: #!是脚本声明,用来告诉系统使用哪种Shell解释器来执行该脚本; 第二行: # 是注释信息,是对脚本功能和某些命令的介绍信息,使自己以后能看懂脚本 第三、四行:

qq_36378763的博客 162

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Linux Shell学习笔记六

Linux Shell学习笔记六

God's blog 948

【Shell】【学习笔记】Linux Shell脚本应用(六)

课时6 条件测试 一、测试操作规范 测试的本质:         就是一条操作命令,并根据 $? 的值来判断条件是否成立。 测试操作规范:         格式1:test 条件表达式         格式2:[ 条件表达式 ] 测试操作的练习方法:直接跟 && echo YES 判断结果。返回YES,则表达式为真;没有返回结果,则表达式为假。方法如下:         [

木名的专栏 417

Linux学习笔记(六)Bash Shell

1.用户通过Shell与核心(kernel)沟通。计算机自里向外依次是:硬件,核心,Shell,用户2.KDE,GNOME之类的图形操作界面也可以视作广义的Shell3.

393

linux学习笔记-Shell(六):shell中的运算

shell中的运算一.运算符号二.运算指令练习 一.运算符号 + 加法 - 减法 * 乘法 / 除法 % 除法后的余数 ** 乘方 ++ 自加一 -- 自减一 < 小于

qq_42003848的博客 169

Linux之ubuntu学习笔记(六):shell基础

---------------------Shell简介------------------------------------------------------------------ shell可以看做是linux下的一个用户的命令行接口,说白了就是命令解释器 当我们输入一条命令时,shell会帮我们做很多操作 shell类似其他编程语言中具有元字符和预留关键字: ---------

llin-黎辰 667

Linux学习笔记 (六) 之 shell脚本编程

脚本是什么 解释性编程 通常.sh结尾 默认使用bash解释 bash -x 文件 :调试文件 文件内set -x开始调试,set +x结束调试 变量 declare 变量:提醒声明了一个变量,没有也行,仅仅提醒用 局部变量 : local 变量 默认全局变量 特殊变量: $0:脚本路径和脚本文件...

deligent_torche的博客 179

Linux学习笔记(六)-Shell高级程序设计基础

Shell高级程序设计基础一. 关于Shell shell是一个命令解释器,是介于操作系统kernel与用户之间的一个绝缘层。它也是一种强力的计算机语言,一个shell程序,被称为一个脚本,可以通过将系统调用、公共程序、工具、和编译过的二进制程序粘合在一起来建立应用。 Shell脚本对于管理系统任务和其它的重复工作的例程来说,表现的非常好 二. Vi编辑器的使用 1.

yyHaker的博客 805

Linux shell编程学习笔记(六) 正则表达式

1、一般字符 包括文字字符、数字字符、空白字符、标点字符 2、转义字符 返斜杠“\”,可以把特殊字符转义成字符本身,如"\\"、 "\[" 3、.(点号)字符 表示任一字符,如".bcd",可以匹配"abcd"、 "Dbcd"等 4、方括号表达式 从方括号中字符任意匹其一,如[Cc]hina,可以匹配"china"和"China" 在方括号的开头加"^"就是取反不匹配的意思,如[^

wzs的博客 374

linux入门六:Linux Shell 编程

Shell 是 Linux 系统中用户与内核之间的桥梁,作为命令解析器,它负责将用户输入的文本命令转换为计算机可执行的机器指令。本质:Shell 是一个程序(如常见的 Bash、Zsh),而 Shell 脚本则是包含一系列命令的文本文件,通常以.sh结尾(非强制,仅为识别方便)。作用:批量执行重复命令、实现自动化任务、编写复杂逻辑程序。变量赋值空格a = 10错误,必须为a=10。中括号空格[条件]需写成[ 条件 ](如路径问题:执行脚本需用./脚本名,直接输入脚本名会提示 “命令未找到”。

嵌入式中手 1918

linux shell 笔记

修改密码 保存密码的地方 /etc/passwd /etc/shadow 修改密码指令 passwd 重启 重启 reboot shutdown -r 关机 shutdown -h 选择shell 没啥用,有这些shell可以用/bin/bash, csh, sh, ksh chsh 自启动文件 每次登陆执行 $HOME/.bash_profile fork a shell执行 $HOME/.bash_rc 查看环境变量 查看一个环境变量 添加的dir echo $PATH home地址 echo $HOM

qq_19841133的博客 4752
上一篇: linux内核书籍推荐
下一篇: linux_shell笔记(七)
terry_linux
博客等级 码龄17年 12粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值