
正文
linux命令转义 linux转命令行
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Linux 命令之 read
Linux中linux命令转义的read命令从标准输入中读取一行,并把输入行的每个字段的值指定给shell变量。
语法:
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p
prompt] [-t timeout] [-u fd] [name ...]
参数:
-a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分隔符。
-d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
-p 后面跟提示信息,即在输入前打印提示信息。
-e 在输入的时候可以使用命令补全功能。
-n 后跟一个数字,定义输入文本的长度,很实用。
-r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话\就是个正常的字符linux命令转义了。
-s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
-t 后面跟秒数,定义输入字符的等待时间。
-u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。
说明
read内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。
相关问答
Q1: Linux:crontab要点整理(表达式,转义,权限管理,日志)
摘要: Linux , crontab
整理crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程 每分钟 会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务
使用如下命令进行crontab服务的开启,关闭,重启,和状态查看
其中启动关闭需要root权限,所有用户可以查看状态例如
crontab通过设置cron表达式来让计算机识别如何定时调度任务,cron表达式的基本语法
前五个 * 分别代表 分钟 , 小时 , 当月第几日 , 当年第几月 , 周几 ,最后的 command 是要执行的任务语句,详情和取值范围见下图
其中* 代表所有值,比如以下代表在每年9月27日17点07分执行一个命令,不限制周几
可见crontab最小颗粒度是以 分钟级别 进行调度, 最粗级别是月 ,不限制年,因此 至少每年执行一次 。
在cron表达式中最后一个*代表周几,如果前面的*限死了日期, 且周几这个位置不为*为一个给定值 ,必定可能和周几冲突,当发生冲突时两者为 OR 的关系,即如果时间满足指定的日期,或者时间满足指定的周几,都会执行任务,举个例子
当天为9月27日,星期一,以上两条语句都会被执行,一个在当天的17点13分,一个在当天的17点17分,在/tmp/cron.txt文件中会先后写入两条记录
当周几这个位置设置为*时,无需关注冲突问题,即不对周几做限制
除此之外cron表达式支持一些特征符号配合阿拉伯数字来设置每个*,这样可以实现 或 , 每隔 , 从,到 的逻辑,分别对应三种常用符号 , , / , - ,分别解释如下
分别举几个例子
(1)17点43分和44分执行任务
(2)每隔2分钟执行任务
(3)从52分带56分一直执行任务,一共执行5次
下面来整理一波常用的cron表达式
目前已知的需要转义的是百分号 % ,尤其是在使用日期命令date做日期格式化时,否则无法在crontab中运行,因为%是crontab中的一个有意义的符号,应该这样设置带有百分号的command例如
如果不这样设置,也可以单独写在一个shell脚本中使用bash解释执行也能够正常运行
在当前用户下使用 crontab -e 来编辑添加定时任务,第一次使用会显示no crontab for用户,然后选择一种编辑方式选择输入3回车,如果首次没有设置后期也可以在终端输入 select-editor 进行设置
设置完成之后输入 crontab -e 进入,该方法进入的是当前用户的crontab界面,新起一行即可写入cron表达式进行设置,例如
其中可以使用 # 注释掉某行,则该cron表达式不生效,编辑完成后输入 wq! 进行保存关闭
一种直接的方式是使用 crontab -r ,这种方法删除该用户下所有crontab任务,其他用户的任务不影响都不会被删除,慎用,如果只是要删除其中某一条任务,则直接进入编辑删除这一行即可
任务查看使用 crontab -l 命令,该命令可以查看当前用户的crontab任务
一台linux机器上每个不同用户都有自己的crontab -e文件设置自己的定时任务,这些任务互不干涉运行在一台机器上,其中root用户可以在使用crontab -e的时候可以切换其他用户进行设定,比如
以上语句是在root下给test用户设置定时任务,如果是普通用户则报错没有-u权限
crontab -e是 用户级别 的,设置每个用户的自己的定时任务,/etc/crontab是 系统级别 的,设置系统例行的任务,/etc/crontab只有root用户有读写权限,普通用户只有读权限。
/etc/crontab相比于crontab -e多出环境变量的配置和用户名配置,由root用户统一给各个任务配置用户名,设置的环境变量对/etc/crontab下所有人任务生效,比如修改他的python的搜索路径为anaconda
这个设置只对/etc/crontab有效,对crontab -e的每个用户设置的任务无效
/etc/crontab中设置系统例行的定时任务
表示分别在小时,每天,每周,每月定时执行系统任务,其中 test -x /usr/sbin/anacron 代表条件测试文件是否可执行,如果可执行忽略||后面的命令内容,这种情况下系统走 anacron ,会读取 /etc/anacrontab 下的内容进行替代
可见机器调用 run-parts 命令和 /etc/cron.daily , /etc/cron.weekly , /etc/cron.monthly 执行定时任务
既然linux支持不同用户设置自己的任务,则在一个地方 /var/spool/cron/crontabs 看到所有用户设置的任务,这个目录只有root有权限进入
目录下有三个文件,对应三个用户,root用户对这些文件可读可写,相当于跟crontab -e可以在这设置和修改任务,直接在里面编辑等同于切到某用户执行crontab -e
ubuntu下crontab默认没有日志文件,需要在配置中设置日志文件位置,配置文件位于 /etc/rsyslog.d/50-default.conf 将这一行注释取消
设置后重启rsyslog服务
下面看下一crontab日志的格式
日志中包括 执行时间 , 主机名 , 用户 ,以及 执行的任务信息 ,任务信息包括执行的用户cron的command以及设置编辑crontab的记录,表明在 哪个时间 执行了 哪个用户 的 哪个命令语句 。
其中这两行反应了报错信息
crontab执行脚本时是不会直接错误的信息输出,而是会以邮件的形式发送到你的邮箱里,这时候就需要邮件服务器了,如果你没有安装邮件服务器,它就会报这个错: No MTA installed, discarding output ,解决方案是将错误内容写入文件,比如在command后面添加 /var/log/cron.log 21 追加,如果是 就是覆盖了,则crontab历史日志每次都会被删除,例如
或者就写入其他目录下
Q2: linux 转义是什么意思,通俗的讲一下
在linux的命令中,有些符号是特殊的字符,所以需要转义掉,举个例子:
linux命令转义你想输出$abc
如果你执行
echo $abc
linux命令转义他会打出一个空,因为$是个特殊符号,$abc就表示一个变量。如果你想输出$abc而不是值得话。
echo \$abc linux命令转义他便会输出\$abc 。这就是转义。明白linux命令转义了吧
Q3: * .* 在linux命令中是什么意思?
* .* 在linux命令中是什么意思?
表示任意几个字符串,其他具体的参考如下:
1. 重定向输出符号。
2. 重定向输出符号,但有追加的功能。
3. 2错误重定向输出符号,覆盖原文件内容。
4. 2错误重定向输出符号,有文件内容追加的功能。重定向:I/O。Linux Shell 环境中支持输入输出重定向,用符号和来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2a.txt 表示将错误信息输出到文件a.txt中。
5. * 代表0个或者多个特殊字符
6. ?匹配任意一个字符。
7. | 管道符号。解释:mand1|mand2,将mand1的输出作为mand2的输入,比如ls -al|less,表示将ls -al的输出作为less的输入,即将la -al的输出分页。管道命令只接受标准输入(standoutput)。
8. 后台进程符。
9. l逻辑与符号。用法:命令1 命令2 表示如果命令1执行成功,继续执行命令2。
10.|| 逻辑或符号。用法:命令1 | | 命令2 表示如果命令1执行成功,不执行命令2;但如果命令1执行失败才执行命令2。
与||,命令执行是顺序进行的,没有优先级
11.!逻辑非符号。排除指定范围。例:ls a[!0-9]
12.[x-y]表示一定的范围。
13.# 注释符;符合替换文字最短的那一个。
14.” ” 双引号表示把它所包含的内容作为普通字符,但` ` $ \ ‘ ‘ 几个符号除外。
15.’ ’ 单引号表示把它所包含的内容作为普通的字符,无特殊例外。
16.$ 变量符,提取变量,如echo $HOME,查看变量;正则表达式中表示行首。
17.\ 转义字符,就是将特殊字符转换成其本来的普通字符的意思。
18.``反单引号,表示它所包含的内容。一般作为嵌入的命令使用,此命令将先执行。
19.;命令分隔符。
20. 重定向输入符。
21.()表示整体执行命令。
22.^反向选择符,例:grep -n '^[^a-zA-Z]' wokao.txt,[]内的叫反向选择符,[]外的则表示定位在行首。查找行首不是英文字母的行。
23. . 点该表任意字符串
*:代表0或任意;
.:代表任意一个字符,这里应该纯粹指.;
所以*.*应该是带有.的文件,比如A.B,AA.BB,.B,A.,泛指有扩展名的文件。
tcpdump在linux命令中是什么意思
你使用tcpdump抓包的话它会一直监听你需要监听的端口,如果你想退出的话输入:ctrl + c可以强制退出。
linux命令中su是什么意思
切换到其他系统用户
比如:
su - root
su - mysql
切换回root一般需要输入密码
linux命令中$#各是什么意思
Linux命令中, $一般表示变量, #一般表示注释。
linux命令 $- 是什么意思
$ 符号在Linux系统里面用于获取一个变量的值,例如:
#!/bin/bash --------指定编译shell环境为bash
STR="Hello World!"----设置STR的变量值为Hello World!
echo $STR ------ 用echo命令读取STR变量的数值。这里如果不加$, 输出结果是STR,加上$,输出结果就是Hello World!。
linux命令中ps -ef是什么意思
以下是man手册 -f 的注释
does full-format listing. This option can be bined with many other UNIX-style options to add additional columns. It also causes the mand arguments to be printed. When used with -L, the NLWP (number of threads) and LWP (thread ID) columns will be added. See the c option, the format keyword args, and the format keyword m.
ps -ef的执行结果就是打印所有进程的以下内容:
UID PID PPID C STIME TTY TIME CMD
这些命令试试就知道结果了.
linux命令man是什么意思
man是查看一个命令详细说明文档用的。
比如man cp就会显示cp(复制)这个命令的详细说明文件。包括每个参数的意思用法等等。
Q4: linux系统转义符有哪些?
(1)转义字符“”
如果将“”放到特殊字符前面,shell就忽略这些特殊字符的原有含义,
把它们当作普通字符对待,例如:
上 是将abc?*重命名为abc,将C:backup重命名为backup。因为 件
名中包含特殊字符,所以都使 了转义字符“”。
(2)单引号“ ' ”
如果将字符串放到 对单引号之间,那么字符串中所有字符的特殊含义将被忽略,例如:
上面两条命令完全等效
(3)双引号“""”
双引号的引用与单引号基本相同,包含在双引号内的大部分特殊字符
可以当作普通字符处理,但是仍有一些特殊字符即使 双引号括起来,也
仍然保留自己的特殊含义,比如“$”、“”和“`”。
从上面的输出可以看出,“$”和“”在双引号内仍然保留了特殊含义。
上面的输出中,字符“`”在双引号中也保留了自己的特殊含义。
linux命令转义的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux转命令行、linux命令转义的信息别忘了在本站进行查找喔。







