static int get_prefixname_from_filename(char *fileName, char *prefixName)
但是这种命名方式给Linux命令行工具和Shell带来了困扰,因为大多数命令中,都是默认以空格做为值与值之间的分隔符,而不是做为文件名的一部分。 看下面的脚本,我们可以了解的更清楚: ?...执行的结果如下: ? 实际上,当前目录的文件只有两个: ? 对于简单的文件名,如上例中,我们也可以通过 for i in *doc 这样简单的方法来获得文件列表。...有一个办法,通过 for i in "* *" 可以获得文件名的列表,但是一个很糟糕的列表,因为这个结果是一个两个文件名在一起的列表,我们完全无法拿来做后续的操作,如下图所示。 ?...通过 "*\ *" 这样的技巧可以避免上面所说的问题,但是在应用mv或其他操作时,还是会出现问题。 ? 上面的问题,可以通过将变量放入引号中("$i")解决,通常情况下,引号中的空格可以被正确的处理。...但这并不是一个恒久的解决办法,因为我们无法处理管道、子Shell等复杂的情况。
/-abc.txt [Option #2] 您可以通过运行命令ls -l来验证通过上述两种方式创建的文件以获得长列表。...shell 中充当命令分隔符。...12.txt 文件名中的点号 (.) 以 dot 开头的文件.在 Linux 中非常特殊,称为 dot 文件。它们是隐藏文件,通常是配置或系统文件。...此类文件的创建、编辑、重命名和删除非常简单。 >touch .12.txt 注意:在 Linux 中,您可以(.)在文件名中包含任意数量的点。...您可以在任何位置拥有一个名称包含波浪号的文件,如下所示: >touch ~1a.txt or $touch 2b~.txt 文件名中的空格 创建一个名称在字符 / 单词之间有空格的文件,说 “嗨,我的名字是
用双引号包裹替换 在 shell 中,当我们为mv之类的命令指定文件名时,shell 将文件名之间的空格视为分隔符。因此,每个文件名将对应于磁盘上的一个单独文件或目录。...认为它是由空格分隔的文件列表。...假设我们有一个变量 整体取HOME变量的值 使用空格作为分隔符将字符串拆分为字段 将每个以空格分隔的字段视为一个可以由 shell 扩展的 glob 在我们的例子中,我们对字符串 上下文感兴趣——变量周围的双引号产生一个字符串...——列表中的每个单词都是一个由空格分隔的字段。...和 $ 在 shell 中也有特殊含义。因此,请记住,每当我们在字符串中遇到这些字符时,我们都需要在它们之前添加一个反斜杠以获取文字字符。 6.
◆远程目录列表 ls命令列出远程目录的内容,就像使用一个交互shell中的ls命令一样。ls命令的一般格式是:ls [目录] [本地文件]如果指定了目录作为参数,那么ls就列出该目录的内容。...如果给出一个本地文件的名字,那么这个目录列表被放入本地机上您指定的这个文件中。 ◆从远程系统获取文件 get和mget命令用于从远程机上获取文件。...mget命令一次获取多个远程文件。mget命令的一般格式为:mget 文件名列表使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。...Put命令的一般格式为:put 文件名mput命令一次发送多个本地文件,mput命令的一般格式为:mput 文件名列表使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。...用于向本地机上的命令shell传送一个命令。如果用户处在ftp会话中,需要shell做某些事,就很有用。例如用户要建立一个目录来保存接收到的文件。如果输入!
转到Shell中 linux ftp常用命令 ◆启动ftp会话 open命令用于打开一个与远程主机的会话。...◆远程目录列表 ls命令列出远程目录的内容,就像使用一个交互shell中的ls命令一样。ls命令的一般格式是: ls [目录] [本地文件] 如果指定了目录作为参数,那么ls就列出该目录的内容。...如果给出一个本地文件的名字,那么这个目录列表被放入本地机上您指定的这个文件中。 ◆从远程系统获取文件 get和mget命令用于从远程机上获取文件。...mget命令一次获取多个远程文件。mget命令的一般格式为: mget 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。...Put命令的一般格式为: put 文件名 mput命令一次发送多个本地文件,mput命令的一般格式为: mput 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。
◆远程目录列表 ls命令列出远程目录的内容,就像使用一个交互shell中的ls命令一样。ls命令的一般格式是:ls [目录] [本地文件]如果指定了目录作为参数,那么ls就列出该目录的内容。...如果给出一个本地文件的名字,那么这个目录列表被放入本地机上您指定的这个文件中。◆从远程系统获取文件 get和mget命令用于从远程机上获取文件。...mget命令一次获取多个远程文件。mget命令的一般格式为:mget 文件名列表使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。...Put命令的一般格式为:put 文件名mput命令一次发送多个本地文件,mput命令的一般格式为:mput 文件名列表使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。...用于向本地机上的命令shell传送一个命令。如果用户处在ftp会话中,需要shell做某些事,就很有用。例如用户要建立一个目录来保存接收到的文件。如果输入!
2.2 局部环境变量 局部环境变量只能在定义它们的进程中可见。查看局部变量的列表有些复杂,Linux 系统并没有一个只显示局部环境变量的命令。...用来将文本字符串分割成字段的一系列字符 MAIL 当前用户收件箱的文件名(Bash Shell 会检查这个文件,看看有没有新邮件) MAILPATH 冒号分隔的当前用户收件箱的文件名列表(Bash Shell...控制哪些命令留在历史记录列表中 HISTFILE 保存 Shell 历史记录列表的文件名(默认是 .bash_history) HISTFILESIZE 最多在历史文件中存多少行 HISTTIMEFORMAT...如果设置了且非空,就用作格式化字符串,以显示 Bash 历史中每条命令的时间戳 HISTIGNORE 由冒号分隔的模式列表,用来决定历史文件中哪些命令会被忽略 HISTSIZE 最多在历史文件中存多少条命令...的全路径名 SHELLOPTS 已启用 Bash Shell 选项列表,列表项之间以冒号分隔 SHLVL Shell 的层级,每次启动一个新 Bash Shell,该值增加 1 TIMEFORMAT
值得注意的是,recipe 默认以制表符开头,而不是空格。 2.2 运行 make 在当前目录下创建一个 Makefile 文件, 命名为 Makefile 。...变量 make 中的变量本质是一种宏替换,用于简化和维护重复出现的字符串和字符串列表。...subst o,O,hello world) make: $ make subst hellO wOrld 4.2.2 $(patsubst pattern,replacement,text) 在 text 中寻找空格分隔的单词...,并且将字符串中的多个空格替换成一个空格。...4.2.4 $(sort list) 按英文字母表顺序对列表 list 中的单词进行排序,删除重复的单词。输出是由单个空格分隔的单词列表。
2.2 patsubst 原型: $(patsubst ,,) 功能:查找中以空白符(空格、Tab)分隔的单词是否符合模式文件名称处理函数 3.1 dir 原型: $(dir ) 作用:从多个以空白符分隔的文件列表中获取文件目录。目录部分是指最后一个反斜杠/之 前的部分。...3.2 notdir 原型: $(notdir ) 功能:从多个以空白符分隔的文件列表中获取非目录部分。非目录部分是指最后一个反斜杠/之后的内容。...3.8 wildcard 原型: $(wildcard ) 功能:扩展通配符函数用于获取匹配此模式的所有文件列表,文件名以空格分隔。如果不存在任何符合此模式的文件,返回空。...每一次text会返回一个字符串,循环过程中,text的所返回的每个字符串会以空格分隔,最后当整个循环结束时,text所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。
2、删除行:d命令 从某文件中删除包含 "how" 的所有行 ? 将/etc/passwd的内容显示并找印行号,同时将 2~5 删除 ? 附:nl 命令在 linux 系统中用来计算文件中行号。...tab 键作为缺省的域分隔符,因此如果要浏览域间有空格的文本,不必指定这个选项,如果要浏览诸如passwd文件,此文件各域以冒号作为分隔符, 则必须指明-F 选项,如:awk -F: 'commands...commands 是真正 awk 命令, input-files 是待处理的文件。 iput_files 可以是多于一个文件的文件列表,awk将按顺序处理列表中的每个文件。...在 awk 中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F 域分隔符的情况下,默认的域分隔符是空格或 tab 键。...注: 1、basename 命令能够从路径中分离出文件名。
Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本,常见的脚本解释器有: bash:是Linux标准默认的shell。...Shell 经过了POSIX的标准化,所以它是可以在不同的linux系统上进行移植。...复制代码 Shell的数组: bash支持一维数组, 不支持多维数组, 它的下标从0开始编号. 用下标[n] 获取数组元素; 定义数组: 在shell中用括号表示数组,元素用空格分开。...arguments 使用空格分隔,不用逗号。...commandN done 复制代码 注意:列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。
Linux下无论如何都是要用到shell命令的,在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是shell里面的那些个符号,各种特殊的符号在我们编写Shell脚本的时候如果能够用的好,...1.作为路径的分隔符,路径中仅有一个斜杆表示根目录,以斜杆开头的路径表示从根目录开始的路径; 2.在作为运算符的时候,表示除法符号。...用于数组的初始化。 {x,y,z,...} 花括号扩展(Brace Expansion)。 在命令中可以用这种扩展来扩展参数列表,命令将会依照列表中的括号分隔开的模式进行匹配扩展。...1.作为路径的分隔符,路径中仅有一个斜杆表示根目录,以斜杆开头的路径表示从根目录开始的路径; 2.在作为运算符的时候,表示除法符号。...作为通配符,用于匹配文件名扩展特性中,用于匹配单个字符; 5. 正则表达式中,表示匹配其前面规则0次或者1次。
“-o filenames”:告诉“readline”生成文件名,以便进行与文件名相关的处理,例如在目录名后面加上斜杠,引用特殊字符,去掉行尾的空格,目的是用于shell函数。...“-o noquote”:告诉“readline”不引用文件名,默认会进行引用。 “-o nospace”:告诉“readline”在补全的名称后不添加空格,默认添加空格。...“-A helptopic”:内建命令help支持的帮助主题。 “-A hostname”:主机名,从shell环境变量HOSTFILE中获取。 “-A job”:作业名,同选项“-j”。...,从数组变量COMPREPLY中获取补全条目。...“-X filterpat”:filterpat是进行文件名扩展时使用的模式,它作用于通过前面的选项和参数生成的补全列表,并把每个与过滤模式匹配的条目删除,模式中前导的叹号表示否定,这时会删除与过滤模式不匹配的条目
转义符 转义符是一种引用单个字符的方法。添加转义符(\) 使得shell中的某个字符失去原有特殊含义。 注意:在echo 和 sed 中谨慎使用转义符,否则会有相反效果。...04. shell中参数:$0、$?、$!、$$、$*、$#、$@ 字符符号 功能(用途) $0 shell文件本身的文件名 $1~$n 添加到Shell的各参数值。...echo $PATH 以冒号分隔的目录列表 pwd 当前工作目录 pwd 5.3 自定义变量基本语法 定义变量:变量名=变量值,等号两侧不能有空格(与其它语言可设空格的区别之处)。...8.1 初始化方式 shell中使用括号来表示数组,元素之间则使用 空格符号 分隔。...# 等号两边不能空格 array_name=(element_1 element_2 ... element_N) # 声明偶数 arr_odd=(1 3 5 7 9) 8.2 获取数组中的元素 #
,因此如果要浏览域间有空格的文本,不必指定这个选项,如果要浏览诸如passwd文件,此文件各域以冒号作为分隔符,则必须指明-F选项,如:awk -F: ‘commands’ input-file。...iput_files可以是多于一个文件的文件列表,awk将按顺序处理列表中的每个文件。 在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。...通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格或tab键。...入门实例: 例1:显示/etc/passwd文件中的用户名和登录shell 如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割 如果只是显示/etc.../passwd文件中的用户名和登录shell, 而账户与shell之间以逗号分割 注:awk的总是输出到标准输出,如果想让awk输出到文件,可以使用重定向。
② 启用程序 启动程序方法,从左边找到要启用的程序,然后复制一下,右边直接把路径粘贴一下,就可以执行。 也可以直接用下面的复制到终端中。 ? 把路径复制过来后,一回车就可以直接执行了。...⑦ 退出日志界面 直接 ctrl+c 就好了,关闭了打印日志的显示,不会影响程序的。 ? 第三章:更多命令 ① 获取命令列表 输入 help 可以查看全部命令列表。...请输入 `help' 以获取一个列表. 输入 `help 名称' 以得到有关函数`名称'的更多信息....使用 `info bash' 来获得关于 shell 的更多一般性信息 使用 `man -k' 或 `info' 来获取不在列表中的命令的更多信息. 名称旁边的星号 (*) 意味着该命令被禁用....值末尾的空格会使下一个词被检测 作为别名替换展开。
LD_LIBRARY_PATH:用于指定动态链接库(.so文件)的路径,其内容是以冒号分隔的路径列表。 C_INCLUDE_PATH:C语言的头文件路径,内容是以冒号分隔的路径列表。...CPLUS_INCLUDE_PATH:CPP的头文件路径,内容是以冒号分隔的路径列表。 PYTHONPATH:Python导入包的路径,内容是以冒号分隔的路径列表。...wc:统计行数、单词数、字节数 既可以从stdin中直接读入内容;也可以在命令行参数中传入文件名列表; wc -l:统计行数 wc -w:统计单词数 wc -c:统计字节数 tree:展示当前目录的文件结构...可以从 stdin 中读取多行数据 可以从命令行参数中读取文件名列表 xargs:将 stdin中的数据用空格或回车分割成命令行参数 find ....内容存放在 ~/.bash_history 中 工具: md5sum:计算md5哈希值 可以从 stdin 读入内容 也可以在命令行参数中传入文件名列表; time command:统计 command
如果你需要输出一篇英文文章,英文文章内容自然存在单词间的空格,行与行之间的换行符,现在如果shell输出内容的字段分隔符是空格,那这会存在一个问题,就是输出内容时内容会排成一列,而不是一行一行的输出。...默认情况下,bash shell会将下列字符当作字段分隔符: 空格 制表符 换行符 如果bash shell在数据中看到以上这些字符中的任意一个,它就会假定这表明了列表中一个新数据字段的开始。...要解决这个问题,可以在 shell 脚本中临时更改 IFS 环境变量的值来限制被 bash shell 当作字段分隔符的字符,比如 IFS=$'\n',这样字段分隔符就被更改为换行了。...这样 bash shell 就认为换行才是数据的结束,bash shell 会在数据值中忽略空格和制表符。...在不知道所有的文件名,这个特性在处理目录中的文件时就非常有用。
注意:等号两边不能有空格、不能再子shell中引用 用户自定义全局环境变量 很显然系统自带的全局环境变量、自带的局部环境变量以及用户定义局部变量并不能满足父子shell进程之间的通讯 因此,linux还允许用户设置自定义全局变量...MAIL 当前用户收件箱的文件名(bash shell会检查这个文件,看看有没有新的邮件) MAILPATH 冒号分隔的当前用户收件箱的文件名列表(bash shell会检查列表中的每个文件,看看有没有新邮件...函数的名称 续 变量 描述 FUNCNEST 当设置成非零值时,表示所允许的最大函数嵌套级数(一旦超出,当前命令即被终止) GLOBIGNORE 冒号分隔的模式列表,定义了在进行文件名扩展时可以忽略的一组文件名...,以显示bash历史中每条命令的时间戳 HISTIGNORE 由冒号分隔的模式列表,用来决定历史文件中哪些命令会被忽略 HISTSIZE 最多在历史文件中存多少条命令 HOSTFILE shell在补全主机名时读取的文件名称...已启用bash shell选项列表,列表项之间以冒号分隔 SHLVL shell的层级;每次启动一个新bash shell,该值增加1 TIMEFORMAT 指定了shell的时间显示格式 TMOUT
领取专属 10元无门槛券
手把手带您无忧上云