Linux自带有两个文本编辑器:vi和nano。
北戴河ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
使用nano编辑文件:
nano 文件名
点击Ctrl-X可以退出编辑,选择是否保存对文件的改动。
使用vi编辑文件:
vi 文件名
vi有两个模式:一个是编辑模式一个是命令模式。点击i可以从命令模式进入编辑模式,在点击esc键可以重新进入命令模式。我们一般进入编辑模式,来进行添加,修改,删除。但是当我们删除和修改的内容过多的时候,我们使用命令行模式,进行修改,这样方便,快捷,而命令行中,最常用到的是x,dd,u,p这四个命令:x:删除当前字符;dd:删除当前行;u:恢复前一步操作;p:复制之前删除的行。
你有将Linux物尽其用吗?对很多Linux用户来说,有很多看起来是技巧的有用特性。有些时候你会需要这些技巧。本文会帮助你更好得使用一些命令,发挥其更强大的功能。
图1:5个命令行技巧
我们开始一个新的系列,在这里我们还会写一些技巧,并且用尽量小的篇幅写清楚。
1.
我们可以使用history命令来查看曾经运行过的命令。
这里是一个history命令的示例输出。
代码如下:
#
history
从history命令输出看,很明显,命令的执行时间没有被打出来。有解决方法吗?有的!运行如下命令:
代码如下:
#
HISTTIMEFORMAT="%d/%m/%y
%T
"
#
history
如果你想让这个修改永久生效,添加如下的一行内容到~/.bashrc文件中:
代码如下:
export
HISTTIMEFORMAT="%d/%m/%y
%T
"
然后,在终端中运行:
代码如下:
#
source
~/.bashrc
命令和选项的解释:
history
–
查看运行过的命令
HISTIMEFORMAT
–
设置时间格式的环境变量
%d
–
天
%m
–
月
%y
–
年
%T
–
时间戳
source
–
简而言之就是将文件内容发送给shell来执行
.bashrc
–
BASH以交互方式启动时运行的脚本文件
2.
如何测试磁盘写入速度?
一行dd命令脚本就可以实现。
代码如下:
#
dd
if=/dev/zero
of=/tmp/output.img
bs=8k
count=256k
conv=fdatasync;
rm
-rf
/tmp/output.img
命令和选项的解释:
dd
–
转换和复制文件
if=/dev/zero
–
指定输入文件,默认为stdin(标准输入)
of=/tmp/output.img
–
指定输出文件,默认为stdout(标准输出)
bs
–
一次读和写的块大小,最大可以以MB为单位
count
–
复制次数
conv
–
使用逗号分隔的策略来转换文件(LCTT
译注:比如将大写字母转换成小写,echo
AA
|
dd
conv=lcase)
rm
–
删除文件和目录
-rf
–
(-r)
递归地删除目录和其中的内容,(-f)强行删除而不输出确认信息
3.
你如何获取吃掉你磁盘空间的最大的6个文件?
一个使用du命令的简单单行脚本即可实现,du命令主要用于获取文件的空间使用情况。
代码如下:
#
du
-hsx
*
|
sort
-rh
|
head
-6
命令和选项的解释:
du
–
估计文件的空间使用情况
-hsx
–
(-h)更易读的格式,(-s)汇总输出,(-x)跳过其他文件系统的文件
sort
–
对文本文件按行排序
-rf
–
(-r)将比较的结果逆序输出,(-f)忽略大小写
head
–
输出文件的头几行
4.
获取一个文件的详细状态信息
可以使用stat命令
代码如下:
#
stat
filename_ext
(例如:stat
abc.pdf)
5.
显示帮助
最后一个技巧是为那些入门者准备的,如果你是有经验的用户,可能不需要它,除非你想从中寻找乐趣。入门者可能有Linux命令行恐惧症,下面的命令会随机显示一个man手册页。对入门者来说,好处是总会学到新的东西,而且不会厌倦。
代码如下:
#
man
$(ls
/bin
|
shuf
|
head
-1)
命令和选项的解释:
man
–
Linux
man手册
ls
–
列出文件
/bin
–
系统可执行文件的路径
shuf
–
把输入内容按行随机打乱并输出
head
–
输出文件的头几行
Linux 命令大全
Linux grep 命令用于查找文件里符合条件的字符串。
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 - ,则 grep 指令会从标准输入设备读取数据。
参数 :
Linux 命令大全
1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:
结果如下所示:
2、以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:
输出结果如下:
3、反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。
查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:
结果如下所示:
Linux创建文件并写入内容可以使用touch命令:touch filename,然后使用echo命令:echo "content" filename就可以将内容写入文件。拓展:除了使用echo命令,也可以使用编辑器来创建文件并写入内容,比如vi编辑器,可以使用vi filename来创建文件,然后输入i进入编辑模式,接着可以输入要写入文件的内容,最后使用esc键退出编辑模式,再输入:wq来保存内容。
一、vi编辑器有3种基本工作模式分别是:命令模式、文本输入模式、和末行模式。第一:命令行 模式:该模式是进入vi编辑器后的默认模式。任何时候,不管用户处于何种模式,按下ESC键即可进入命令模式。在该模式下,用户可以输入vi命令,用户管理自己的文档。此时从键盘上输入的任何字符都被当作编辑命令来解释。若输入的字符是合法的vi命令,则vi在接受用户命令之后完成相应的动作。但需要注意的是,所输入的命令并不回显在屏幕上。若输入的字符不是vi命令,vi会响铃报警。第二:文本输入模式:在命令模式下输入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被vi当作文件内容保护起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按ESC键即可。第三:末行模式:末行模式也称ex转义模式。在命令模式下,用户按“:”键即可进入末行模式下,此时vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的说明符,等待用户输入命令。多数文件管理 命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令在执行完后,vi自动回到命令模式。如果要从命令模式转换到编辑模式,可以键入a或者i。如果需要从文本模式返回,则按ESC即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。实例演示首先我们使用命令 vi filename 打开一个文件,这个时候进入到的是命令模式接下来我们按i,然后键盘随便输入写内容。然后按ESC重新进入到命令模式。在命令模式的情况下,我们按:,进入到了末行模式。我们输入wq!,然后回车,强行保存退出。下次我们再打开对应文件(可用less filename命令打开),即可看到内容已经更改。补充:(1)末行模式下:q! 【强制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加个!】(2)如果你不想保存直接退出有可以在命令模式下使用“ctrl+z”快捷键 或者按住“shift”键,输入两个z即可退出。更多命令进入vi的命令:vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename….filename :打开多个文件,依次进行编辑屏幕翻滚类命令:Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl+b;向文件首翻一屏nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。插入文本类命令:i :在光标前I :在当前行首a:光标后A:在当前行尾o:在当前行之下新开一行O:在当前行之上新开一行r:替换当前字符R:替换当前字符及其后的字符,直至按ESC键s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之ncw或nCW:修改指定数目的字nCC:修改指定数目的行删除命令:ndw或ndW:删除光标处开始及其后的n-1个字do:删至行首d$:删至行尾ndd:删除当前行及其后n-1行x或X:删除一个字符,x删除光标后的,而X删除光标前的Ctrl+u:删除输入方式下所输入的文本搜索及替换命令:/pattern:从光标开始处向文件尾搜索pattern?pattern:从光标开始处向文件首搜索patternn:在同一方向重复上一次搜索命令N:在反方向上重复上一次搜索命令:s/p1/p2/g:将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g:将文件中所有p1均用p2替换撤销回退命令:u 撤销上一步的操作Ctrl+r 恢复上一步被撤销的操作选项设置:all:列出所有选项设置情况term:设置终端类型ignorance:在搜索中忽略大小写list:显示制表位 (Ctrl+I)和行尾标志($)number:显示行号report:显示由面向行的命令修改过的数目terse:显示简短的警告信息warn:在转到别的文件时若没保存当前文件则显示NO write信息nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符 nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始mesg:允许vi显示其他用户用write写到自己终端上的信息末行模式命令::n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下:n1,n2 d :将n1行到n2行之间的内容删除:w :保存当前文件:e filename:打开文件filename进行编辑:x:保存当前文件并退出:q:退出vi:q!:不保存文件并退出vi:wq:保存并退出:!command:执行shell命令command:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入:r!command:将命令command的输出结果放到当前行寄存器 操作:“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。