linux命令行注释符号_linux中的注释是哪个
linux脚本中两个短横--是注释的意思吗?如--文件系统
linux注释是#吧 不同软件使用的注释符号不一样 -- 一般是运行命令使用的参数控制符号吧 比如安装mysql源码的时候会 /install --prefix=/usr/local/ 指定安装软件的目录linux脚本中两个短横--是注释的意思吗?如--文件系统
linux命令%符号是什么意思
如果一个名称用%括起来,那么就是用的它的赋值,而不是本身的字母
比如
echo time echo %time%
----------------------------------------------------------------------
FOR这条命令基本上都被用来处理文本,我们这次除了要说他处理文本的作用外还要讲他的其他一些好用的功能!
看看他的基本格式(这里我引用的是批处理中的格式,直接在命令行只需要一个%号)
FOR 参数 %%变量名 IN (相关文件或命令) DO 执行的命令
%%变量名 :这个变量名可以是小写a-z或者大写A-Z,他们区分大小写哦~
FOR会把每个读取到的值给他!
IN:命令的格式,照写就是了!
(相关文件或命令) :FOR要把什么东西读取然后赋值给变量,不懂的话看下面的例子
do:命令的格式,照写就是了!
执行的命令:对每个变量的值要执行什么操作就写在这.
看不懂我的这些说明,可以在CMD输入for /?看系统提供的帮助!我这里也给出来吧,大家对照
FOR %%variable IN (set) DO command [command-parameters]
%%variable 指定一个单一字母可替换的参数.
(set) 指定一个或一组文件.可以使用通配符.
command 指定对每个文件执行的命令.
command-parameters
为特定命令指定参数或命令行开关.
现在开始讲每个参数的意思
/d
仅为目录
如果 Set (也就是我上面写的 "相关文件或命令") 包含通配符(* 和 ?),将对与 Set 相匹配的每个目录(而不是指定目录中的文件组)执行指定的 Command.
这个参数其实我也没弄太懂...有错误希望各位纠正!
系统帮助的格式:FOR /D %%variable IN (set) DO command
他主要用于目录搜索,不会搜索文件,看这样的例子
@echo off
for /d %%i in (*) do @echo %%i
pause
把他保存放在C盘根目录执行,就会把C盘目录下的全部目录名字打印出来,而文件名字一个也不显示!
for /d %%i in (?) do @echo %%i
这里解释下*号和?号的作用,*号表示任意N个字符,而?号只表示任意一个字符
知道作用了,给大家个思考题目!
for /d %%i in (window?) do @echo %%i
保存到C盘下执行,会显示什么呢?自己看吧!
/D参数只能显示当前目录下的目录名字,这个大家要注意!
/R
递归
进入根目录树 [Drive:]Path,在树的每个目录中执行 for 语句.如果在 /R 后没有指定目录,则认为是当前目录.如果 Set 只是一个句点 (.),则只枚举目录树.
系统帮助的格式:FOR /R [[drive:]path] %%variable IN (set) DO command
上面我们知道,/D只能显示当前路径下的目录名字,那么现在这个/R也是和目录有关,他能干嘛呢?放心他比/D强大多了!
他可以把当前或者你指定路径下的文件名字全部读取,注意是文件名字,有什么用看例子!
for /r c:\ %%i in (*.exe) do @echo %%i
咋们把这个BAT保存到D盘随便哪里然后执行,我会就会看到,他把C盘根目录,和每个目录的子目录下面全部的EXE文件都列出来了!!!!
再来一个
for /r %%i in (*.exe) do @echo %%i
参数不一样了吧!这个命令前面没加那个C:\也就是搜索路径,这样他就会以当前目录为搜索路径,比如你这个BAT你把他防灾d:\test目录下执行,那么他就会把D:\test目录和他下面的子目录的全部EXE文件列出来!!!
这个参数大家因该理解了吧!还是满好玩的命令!
/L
迭代数值范围
系统帮助的格式:for /L %% Variable in (Start#,Step#,End#) do Command
看着这说明有点晕吧!咋们看例子就不晕了!
大会晕,就打印个数字有P用...好的满足大家,看这个例子
看完这个被我赋予破坏性质的参数后,我们来看最后一个参数
/f
\迭代及文件解析
使用文件解析来处理命令输出、字符串及文件内容.使用迭代变量定义要检查的内容或字符串,并使用各种 ParsingKeywords 选项进一步修改解析方式.使用 ParsingKeywords 令牌选项指定哪些令牌应该作为迭代变量传递.请注意:在没有使用令牌选项时,/F 将只检查第一个令牌.
文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文本行以及再将每行解析成零个或更多个令牌.然后通过设置为令牌的迭代变量值,调用 for 循环.默认情况下,/F 传递每个文件每一行的第一个空白分隔符号.跳过空行.
系统帮助的格式:
for /F "ParsingKeywords" %% Variable in (FileNameSet) do Command
有没有发现这个参数说明比上面几个都多...没办法,人们用FOR命令主要也就是用/f参数,FOR的主场啊!大家得好好看!
先来解释下那个多出来的"ParsingKeywords"
eol=c - 指一个行注释字符的结尾(就一个)
skip=n - 指在文件开始时忽略的行数.
delims=xxx - 指分隔符集.这个替换了空格和跳格键的
默认分隔符集.
tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
的 for 本身.这会导致额外变量名称的分配.m-n
格式为一个范围.通过 nth 符号指定 mth.如果
符号字符串中的最后一个字符星号,
那么额外的变量将在最后一个符号解析之后
分配并接受行的保留文本.
usebackq - 指定新语法已在下类情况中使用:
在作为命令执行一个后引号的字符串并且一个单
引号字符为文字字符串命令并允许在 filenameset
中使用双引号扩起文件名称.
先别晕了!我这就举个例子让粉丝们变的更强来理解这些参数!
usebackq这个参数不用理解了,系统默认会给我们加上!
为了能使用这个例子,我们先新建一个文本文件,在里面打上这些内容保存为test.txt:
;郁闷啊!
您好! 欢迎来到, 非常批处理
我们的网站 bbs.verybat.org
完毕!
FOR /F "eol=; tokens=1 delims= " %%i in (test.txt) do @echo %%i
我们把这个BAT保存到和你的test.txt相同的目录下面然后执行
我们会看到屏幕上会显示
您好!
我们的网站
为什么会这样?我来解释
这个命令会读取在当前目录下名为test.txt文件中的内容,将每一行的内容赋值给变量%%i,忽略掉以;号开头的行,并且以空格做为分隔符号,打印每行以空格做分隔符号的第一列
结果就是这样了!!
如果改成
当然我们想要把全部文件内容直接打印出来就可以这样
FOR /F "delims=" %%i in (test.txt) do @echo %%i
另外/F参数还可以以输出命令的结果看这个例子
FOR /F "delims=" %%i in ('net user') do @echo %%i
这样你本机全部帐号名字就出来了把扩号内的内容用两个单引号引起来就表示那个当命令执行,FOR会返回命令的每行结果,加那个"delims=" 是为了让我空格的行能整行显示出来,不加就只显示空格左边一列!
基本上讲完了FOR的基本用法了...如果你看过FOR的系统帮助,你会发现他下面还有一些特定义的变量,这些我先不讲.大家因该都累了吧!你不累我累啊....
linux系统符号说明
? 01 系统特殊符号
? ? 说明: 查询信息的时候,会带来便利
? ? 1) 基础符号系列
? ? ? $?
? ? ? a 调取变量信息
? ? ? b 区分用户类型? $ 普通用户
? ? ? c 结合awk对文件进行取列 ?
!
? a 强制的作用? wq!
? b 可以实现取反
find /oldboy_dir/ ! -type f (排除文件)
? c !信息? 可以快速调取执行历史命令(慎用)
? ? cat ~/.bash_history? -- 记录历史命令信息, 但是不会实时记录
history? ? ? ? ? ? ? -- 显示所有输入过的历史命令
? ? |
? a 实现管道功能
? ? 将前一个命令执行的结果交给管道后面的命令进行处理
一般管道符号 会经常和xargs命令配合使用
批量删除操作
find /oldboy -type f -name "oldboy*.txt"|xargs rm
find /oldboy_dir/ -type f -delete
? ? find /oldboy_dir/ -type f -exec rm -f {} \;
? 查找指定数据信息进行复制
? ? find /oldboy -type f -name "oldboy*.txt" |xargs -i cp {} /oldgirl/
? ? find /oldboy -type f -name "oldboy*.txt" |xargs cp -t /oldgirl/
? ? find /oldboy -type f -name "oldboy*.txt" -exec cp -a {} /oldgirl \;
查找指定数据信息进行移动
? ? find /oldboy -type f -name "oldboy*.txt" |xargs -i mv {} /oldgirl/
? ? find /oldboy -type f -name "oldboy*.txt" |xargs mv -t /oldgirl/
? ? find /oldboy -type f -name "oldboy*.txt" -exec mv {} /oldgirl \;
? ? xargs(火眼金睛)后面跟的命令,不识别别名信息
? #
? ? a 表示对配置文件信息进行注释
? ? b 表示用户的身份信息 超级管理员用户
? ? ? "" 基本上和单引号功能类似 但是可以对一些特殊符号做出解析? $ +命令+==$(命令)
? ? ? '' 里面编写的什么内容就输出什么内容? 所见即所得
? 作用:
? 01. 指定需要输出的信息
? ? ++($()) 将引号里面命令执行结果,交给引号外面命令进行使用 ?
? /1? 标准输出重定向符号
? /1 标准输出追加重定向符号
? 标准输入重定向符号
? ? ? tr xargs
? 标准输入追加重定向符号
? 逻辑: 在完成一件事情的时候,有合理先后顺序
? ? 前一个命令操作执行成功了,再操作执行后面的命令
? ||? 前一个命令操作执行失败了,再操作执行后面的命令
? mkdir /old_dir echo "create dir sucess" || echo "create dir failed"
? ? ? create dir sucess
? ? ? mkdi /old_dir echo "create dir sucess" || echo "create dir failed"
? ? ? -bash: mkdi: command not found
? ? ? create dir failed
? ? 什么通配符号: 用于匹配文件名称信息, 便于快速查找文件信息 find
? ? *? 匹配所有信息
? ? ? find /oldboy -type f -name "oldboy*"? ---以oldboy开头的信息都查询出来
? find /oldboy -type f -name "*oldboy"? ---以oldboy开头的信息都查询出来
? find /oldboy -type f -name "oldgirl*oldboy"?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ---以oldgirl 开头的信息
? ? 以oldboy? 结尾的信息都查询出来
{} 产生序列信息
? 连续序列:
? ? ? ? echo {a..z}
? ? ? ? echo {A..Z}
? 生成不连续序列
a 有规律的不连续序列
? ? ? b 没规律的不连续序列
echo {www,bbs,blog}
? ? ? ? www bbs blog
生成组合序列
? ? echo A{a,b}
? ? ? ? Aa Ab ?
? ? A=oldboy.txt
? ? ? echo oldboy.txt{a,b} ?
? ? ? oldboy.txta oldboy.txtb ?
echo A{,b}
? ? ? A Ab
? A=oldboy.txt
? b=.bak
cp oldboy.txt{,.bak} == cp oldboy.txt oldboy.txt.bak
? 快速备份文件命令
? cp oldboy.txt{,.bak}
? 快速还原数据方法
? cp oldboy.txt{.bak,}
? echo A{B,}
? ? ? AB A
? oldboy.txt{.bak,} == cp oldboy.txt.bak oldboy.txt
? ? 基础正则符号:basic regular expression? ? (BRE)
扩展正则符号:extended regular expression (ERE)
基础正则符号:
? ? a 尖角符号:^
? ? ? 以什么开头的信息进行过滤出来
? grep -v "^#" nginx.conf.default nginx.conf(对不需要关注的信息取反)
? 常见错误
? find / -type f -name "^oldboy"? 错误
? find / -type f -name "oldboy*"? 正确
? ? b 美元符号:$
? 以什么结尾的信息进行过滤出来
? ? ? 常见错误:
? 如果过滤不出来,确认每行结尾是否有空格信息
? 方法一:
? cat -A test.txt
? 方法二
? ? ? vim 底行模式输入命令 --- :set list
c 尖角美元符号:^$
? ? ? 取出文件中空行信息
? ? ? grep "^$" test.txt
? ? ? grep -v "^$" test.txt
d 点符号: .
? 表示匹配任意一个且只有一个字符
? grep "." test.txt? -o(更直观的显示过程)
e 星号符号: *
? 匹配星号前面一个字符连续出现0次或多次
f 点和星号组合: .*
? ? ? 匹配所有信息
说明: 正则符号在匹配数据信息的时候具有贪婪特性
避免贪婪特性的方法,是在指定一行信息中唯一节点信息
g 转译符号: \
①.) 将一些有意义的符号进行转译, 变为一个普通符号
grep "\.$" ~/oldboy_test.txt
? ? \n? 换行符号 linux
grep "o\?" test.txt
h 括号符号:[]
? 匹配括号中每一个字符,并且匹配的关系是或者的关系
? 需求: 找出文件中oldboy 和 oldbey两个单词信息
? ? ? grep "oldb[oe]y" test.txt
? ? ? 企业应用: 找寻文件中字母 数字信息
i 尖号和中括号组合使用 : [^]
? 对中括号里面匹配的字符信息进行排除
? 尖号和中括号组合使用 : ^[]
? 以中括号里面匹配的字符作为一行开头的字符
? ? ? grep "^[zx]" test.txt
正则符号注意事项
按照每行信息进行过滤处理
注意正则表达符号禁止中文
附上颜色信息进行正则过滤 --color=auto/--color
基础正则符号可以被三剑客命令直接识别 grep sed awk
扩展正则符号不可以被三剑客命令中老二和老三直接识别
sed命令想识别正则符号: sed -r
grep命令想识别正则符号: egrep / grep -E
? ? a 加号符号:+
? ? 匹配加号前面一个字符连续出现1次或者多次
b 竖线符号:|
或者关系符号
egrep "oldboy|oldbey" test.txt
c 括号符号:()
将多个字符信息进行汇总为一个整体
egrep "(oldboy)" test.txt
进行后向引用前向的一个操作(sed)
修改配置文件内容
sed -rn "s#(^S.*UX=).*#\1enforcing#gp" /etc/selinux/config
SELINUX=enforcing
d 括号符号:{}
指定花扩号前一个字符连续匹配多少次
* 连续匹配 0 次 或 多次
+ 连续匹配 1 次 或 多次
? ? 1) {n,m}? n表示最少连续匹配多少次? m表示最多连续匹配多少次
e 问号符号:?
? 表示匹配问号前面一个字符出现0次或者1次
* .* 在linux命令中是什么意思
表示任意几个字符串,其他具体的参考如下:
①.. 重定向输出符号.
与||,命令执行是顺序进行的,没有优先级
linux系统在 vim编译器中,,,注释符/* - - - - - - -*/ 和 // 以及 # 都是什么意思啊?有什么区别吗?
//和#一样,都是注释只不过是单行注释.
:起始行号,结束行号? ? ? ? ?/* ?------*/ 这个可以注释几行,中间可以断行,两边是匹配的.
系统:Linux
多行注释:
进入命令行模式--
将光标移动到要注释的第一行位置--
按ctrl + v进入 visual block模式--
按字母j或k(或者上下移动键)纵向选中需要注释的行--
按大写字母I,进入插入模式--
输入注释符号,例如##(需要添加几列就输入几个)--
按esc键就注释多行了.
取消多行注释(删除注释):进入命令行模式--
将光标移动到要取消注释的第一行第一列位置--
按小写字母h或l横向选中列的个数,按小写字母j或k纵向选中行的个数(同样可以使用上下左右移动键)--按d键或者delete键就可多行取消注释.
扩展资料:
linux在vim下怎么批量替换或者注释:
:%s/foo/bar/g
把全部foo替换为bar,全局替换
:s/foo/bar/g
当前行替换foo为bar
:%s/foo/bar/gc
替换每个foo为bar,但需要确认.
:%s/\/bar/gc
单词匹配替换, 需确认
%s/foo/bar/gci
忽略foo大小写,替换为bar, 需确认
以上就是衡万小常识小编为大家整理的linux命令行注释符号相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!