用户 @ 主机名 当前目录
总结Linux命令输入规律:
如何输入命令:
命令 [选项]([参数])[选项的值]([参数的值])空格分割
常见选项(参数):-h --help ; 特点:选项前有一个 -字母 或 --加单词
例:find /home -name mk
命令后:左边是源 右边是目标
例:cp a.txt a.txt.bak
作用:查看目录下的文档
语法:ls 目录
-l 显示详细信息
-a 显示隐藏文件
. 当时目录
.. 上级目录
-d 查看目录
-h 增强可读性
作用:查看当前所在的路径
语法:pwd
/var/www/html
作用:切换目录
语法:cd 目录名
cd 回到用户的家目录
cd ~ 回到-用户的家目录
cd - 回到上级切换时目录
切换到/etc下
切换到/etc/sysconfig/
-h --help
man find
shutdow、init 、reboot
作用:关机,重启,定时关机
-r #重启
-h #关机
-c
作用:切换系统级别
init 0命令用于立即将系统运行级别切换为0,即关机;
0是关机
①.是单用户
自己去查下reboot怎么使用吧,这里就不过多介绍了reboot --help
语法:
ln(选项)(参数)
它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件.
在此我们只介绍下软链接.
我们为js文件夹建一个软链接
所以呢,有必要彻底地了解其应用
Linux 操作系统最大的一个好处是它带有各种各样的实用工具.存在如此之多不同的实用工具,几乎不可能知道并了解所有这些工具.可以简化关键情况下操作的一个实用 工具是 sed.它是任何管理员的工具包中最强大的工具之一,并且可以证明它自己在关键情况下非常有价值.
sed 的工作方式
sed 实用工具按顺序逐行将文件读入到内存中.然后,它执行为该行指定的所有操作,并在完成请求的修改之后将该行放回到内存中,以将其转储至终端.完成了这一行 上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件.如同前面所提到的,默认输出是将每一行的内容输出到屏幕上.今天这一节,开始涉及到 两个重要的因素—首先,输出可以被重定向到另一文件中,以保存变化;第二,源文件(默认地)保持不被修改.sed 默认读取整个文件并对其中的每一行进行修改.不过,可以按需要将操作限制在指定的行上.
该实用工具的语法为:
sed [options] '{command}' [filename]
在这篇文章中,我们将浏览最常用的命令和选项,并演示它们如何工作,以及它们适于在何处使用.
替换命令
's/{old value}/{new value}/'
因而,下面演示了如何非常简单地将 "tiger" 修改为 "wolf":
$ echo The tiger cubs will meet on Tuesday after school | sed
's/tiger/wolf/'
The wolf cubs will meet on Tuesday after school
$
注意如果输入是源自之前的命令输出,则不需要指定文件名—同样的原则也适用于 awk、sort 和其它大多数 LinuxUNIX 命令行实用工具程序.
多次修改
$ echo The tiger cubs will meet on Tuesday after school | sed -e '
s/tiger/wolf/' -e 's/after/before/'
The wolf cubs will meet on Tuesday before school
这是实现它的非常复杂的方法,所以呢 "-e" 选项不常被大范围使用.更好的方法是用分号来分隔命令:
$ echo The tiger cubs will meet on Tuesday after school | sed '
s/tiger/wolf/; s/after/before/'
注 意分号必须是紧跟斜线之后的下一个字符.如果两者之间有一个空格,操作将不能成功完成,并返回一条错误消息.这两种方法都很好,但许多管理员更喜欢另一种 方法.要注意的一个关键问题是,两个撇号 (' ') 之间的全部内容都被解释为 sed 命令.直到您输入了第二个撇号,读入这些命令的 shell 程序才会认为您完成了输入.这意味着可以在多行上输入命令—同时 Linux 将提示符从 PS1 变为一个延续提示符(通常为 "")—直到输入了第二个撇号.一旦输入了第二个撇号,并且按下了 Enter 键,则处理就进行并产生相同的结果,如下所示:
s/tiger/wolf/
s/after/before/'
全局修改
$ echo The tiger cubs will meet this Tuesday at the same time
as the meeting last Tuesday | sed 's/Tuesday/Thursday/'
The tiger cubs will meet this Thursday at the same time
as the meeting last Tuesday
as the meeting last Tuesday | sed 's/Tuesday/Thursday/g'
as the meeting last Thursday
请记住不管您要查找的序列是否仅包含一个字符或词组,这种对全局化的要求都是必需的.
sed 还可以用来修改记录字段分隔符.例如,以下命令将把所有的 tab 修改为空格:
sed 's// /g'
其 中,第一组斜线之间的项目是一个 tab,而第二组斜线之间的项目是一个空格.作为一条通用的规则,sed 可以用来将任意的可打印字符修改为任意其它的可打印字符.如果您想将不可打印字符修改为可打印字符—例如,铃铛修改为单词 "bell"—sed 不是适于完成这项工作的工具(但 tr 是).
有时,您不想修改在一个文件中出现的所有指定项目.有时,您只想在满足某些条件时才作修改—例如,在与其它一些数据匹配之后才作修改.为了说明这一点,请考虑以下文本文件:
$ cat sample_one
one 1
two 1
three 1
现在,使其更加准确:
$ sed '
请 再次记住唯一改变了的是显示.如果您查看源文件,您将发现它始终保持不变.您必须将输出保存至另一个文件,以实现永久保存.值得重复的是,不对源文件作修 改实际是祸中有福—它让您能够对文件进行试验而不会造成任何实际的损害,直到让正确命令以您预期和希望的方式进行工作.
以下命令将修改后的输出保存至一个新的文件:
该输出文件将所有修改合并在其中,并且这些修改通常将在屏幕上显示.现在可以用 head、cat 或任意其它类似的实用工具来进行查看.
脚本文件
sed 工具允许您创建一个脚本文件,其中包含从该文件而不是在命令行进行处理的命令,并且 sed 工具通过 "-f" 选项来引用.通过创建一个脚本文件,您能够一次又一次地重复运行相同的操作,并指定比每次希望从命令行进行处理的操作详细得多的操作.
考虑以下脚本文件:
$ cat sedlist
现在可以在数据文件上使用脚本文件,获得和我们之前看到的相同的结果:
$ sed -f sedlist sample_one
限制行
在这种情况下,因为要修改的行是专门指定的,所以不需要替换命令.所以呢,您可以灵活地根据匹配准则(可以是行号或一种匹配模式)来选择要修改哪些行(从根本上限制修改).
禁止显示
$ sed -n -f sedlist sample_one
$ sed -n -f sedlist sample_one sample_two
$ cat sample_two
然后下面是运行它的结果:
删除行
该命令的语法是:
'{what to find} d'
从 sample_one 文件中删除包含 "two" 的所有行:
$ sed '/two/ d' sample_one
从显示屏中删除前三行,而不管它们的内容是什么:
上三角号 (^) 表示一行的开始,所以呢,如果 "two" 是该行的头三个字符,则
sed '/^two/ d' sample_one
将只删除该行.
美元符号 ($) 代表文件的结尾,或一行的结尾,所以呢,如果 "two" 是该行的最后三个字符,则
sed '/two$/ d' sample_one
将这两者结合在一起的结果:
sed '/^$/ d' {filename}
其通常的用途是删除一个标题.以下命令将删除文件中所有的行,从第一行直到第一个空行:
sed '1,/^$/ d' {filename}
添加和插入文本
可以结合使用 sed 和 "a" 选项将文本添加到一个文件的末尾.实现方法如下:
$ sed '$a
This is where we stop
the test' sample_one
the test
在该命令中,美元符号 ($) 表示文本将被添加到文件的末尾.反斜线 () 是必需的,它表示将插入一个回车符.如果它们被遗漏了,则将导致一个错误,显示该命令是错乱的;在任何要输入回车的地方您必须使用反斜线.
新的文本出现在输出的中间位置,而处理通常在指定的操作执行以后继续进行.
读写文件
$ cat sample_three
修改命令
除了替换项目之外,还可以将行从一个值修改为另一个值.要记住的是,替换是对字符逐个进行,而修改功能与删除类似,它影响整行:
$ sed '/two/ c
We are no longer using two' sample_one
We are no longer using two
修改全部但......
对于大多数 sed 命令,详细说明各种功能要进行何种修改.利用感叹号,可以在除指定位置之外的任何地方执行修改—与默认的操作完全相反.
例如,要删除包含单词 "two" 的所有行,操作为:
而要删除除包含单词 "two" 的行之外的所有行,则语法变为:
$ sed '/two/ !d' sample_one
如果您有一个文件包含一系列项目,并且想对文件中的每个项目执行一个操作,那么首先对那些项目进行一次智能扫描并考虑将要做什么是很重要的.为了使事情变得更简单,您可以将 sed 与任意迭代例程(for、while、until)结合来实现这一目的.
比如说,假定您有一个名为 "animals" 的文件,其中包含以下项目:
pig
horse
elephant
cow
dog
cat
您希望运行以下例程:
#mcd.ksh
for I in $*
do
echo Old McDonald had a $I
echo E-I, E-I-O
done
结 果将为,每一行都显示在 "Old McDonald has a" 的末尾.虽然对于这些项目的大部分这是正确的,但对于 "elephant" 项目,它有语法错误,因为结果应当为 "an elephant" 而不是 "a elephant".利用 sed,您可以在来自 shell 文件的输出中检查这种语法错误,并通过首先创建一个命令文件来即时地更正它们:
#sublist
/ a a/ s/ a / an /
/ a e/ s/ a / an /
/a i/ s / a / an /
/a o/ s/ a / an /
/a u/ s/ a / an /
然后执行以下过程:
$ sh mcd.ksh 'cat animals' | sed -f sublist
Old McDonald had a pig
E-I, E-I-O
Old McDonald had a horse
Old McDonald had an elephant
Old McDonald had a cow
Old McDonald had a dog
Old McDonald had a cat
提前退出
sed 默认读取整个文件,并只在到达末尾时才停止.不过,您可以使用退出命令提前停止处理.只能指定一条退出命令,而处理将一直持续直到满足调用退出命令的条件.
例如,仅在文件的前五行上执行替换,然后退出:
在退出命令之前的项目可以是一个行号(如上所示),或者一条查找/匹配命令:
/three/q' sample_one
sed 110q filename
处理问题
如果您的操作顺序没有十分彻底地考虑清楚,那么这可能会很麻烦.例如,假定您需要将所有的 "two" 项目修改为 "three",然后将所有的 "three" 修改为 "four":
/two/ s/two/three/
/three/ s/three/four/' sample_one
four 1
当执行这种操作时,您必须非常用心地注意指定操作的方式,并按某种顺序来安排它们,使得操作之间不会互相影响.例如:
/three/ s/three/four/
/two/ s/two/three/' sample_one
这非常有效,因为 "three" 值在 "two" 变成 "three" 之前得到修改.
标签和注释
可以在 sed 脚本文件中放置标签,这样一旦文件变得庞大,可以更容易地说明正在发生的事情.存在各种各样与这些标签相关的命令,它们包括:
此时此刻呢的步骤
访问并收藏 Linux 技术中心
: 冒号表示一个标签名称.例如:
:HERE
以冒号开始的标签可以由 "b" 和 "t" 命令处理.
b {label} 充当 "goto" 语句的作用,将处理发送至前面有一个冒号的标签.例如,
b HERE
将处理发送给行
如果紧跟 b 之后没有指定任何标签,则处理转至脚本文件的末尾.
t {label} 只要自上次输入行或执行一次 "t" 命令以来进行了替换操作,就转至该标签.和 "b" 一样,如果没有给定标签名,则处理转至脚本文件的末尾.
# 符号作为一行的第一个字符将使整行被当作注释处理.注释行与标签不同,不能使用 b 或 t 命令来转到注释行上.
表示任意几个字符串,其他具体的参考如下:
①.. 重定向输出符号.
与||,命令执行是顺序进行的,没有优先级
如果您的键盘支持反撇号(+)的话,反撇号和波浪符号(~)占同一个字符.位于ESC键下方,数字1或!左边.反撇号在下,波浪符号在上.这是基于英文输入模式.如果是中文输入,分别输出(-)和(~),波浪号一样,但(+)变成了(-)
在bash里面 用两个+ 来表示其中的内容是一个bash命令执行的结果返回值
简单的例子:
date 这个命令在shell中的功能是显示当前日期
我们将echo 和date一起使用
①不加+来表示 结果如下:
date
以上就是土嘎嘎小编为大家整理的linux命令撇号相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!