五个被忽视却能提升Linux生产力的实用命令 (五个被忽视却坚持的人)
流编辑器是一款功能强大的文本编辑工具,它可以在不将整个文件加载到内存中 的情况下编辑文件。
流编辑器的主要优点之一是它可以快速编辑大文件。基于 GUI 的编辑 器在打开大文件之前必须将整个文件加载到内存中,而流编辑器则可以逐行处 理文件,从而节省时间和内存。
流编辑器还支持正则表达式,这使得它能够进行复杂而强大的模式匹配。
流编辑器语法
流编辑器的语法相对简单:
sed [选项] '命令' [输入文件]
选项:可以指定各种选项来控制流编辑器的行为,例如:
`-n`:仅打印模式匹配的行
`-i`:直接编辑输入文件
`-e`:指定多个命令
命令:命令指定要对文件执行的操作,例如:
`s/old/new/`:用 `new` 替换 `old`
`d`:删除匹配的行
`p`:打印匹配的行
输入文件:要编辑的文件的名称。如果您不指定输入文件,流编辑 器将从标准输入读取。
流编辑器示例
让我们看一些流编辑器示例: 将所有 `a` 替换为 `b`: ``` sed 's/a/b/' input.txt ``` 删除包含单词 "the" 的所有行: ``` sed '/the/d' input.txt ``` 仅打印包含单词 "the" 的行: ``` sed -n '/the/p' input.txt ```正则表达式
流编辑器支持正则表达式,这是一种用于匹配文本模式的强大语言。正则表 达式可以用来匹配各种模式,例如: 字符类:`[abc]` 匹配字符 `a`、`b` 或 `c` 量词:`` 匹配零个或多个前一个字符 分组:`(ab)` 匹配字符串 "ab" 转义字符:`\d` 匹配数字字符 有关正则表达式的更多信息,请参阅以下资源: [正则表达式教程]([正则表达式速查表](高级流编辑器用法
流编辑器是一个功能强大但复杂的工具,它可以执行各种高级任务。以下是一些高级流编辑器用法示例: 使用管道:您可以将流编辑器与其他命令一起使用管道。例如,以下命令使用流编辑器将所有 `a` 替换为 `b`,然后使用 `grep` 命令查找包含单词 "the" 的行: ``` sed 's/a/b/' input.txt | grep the ``` 使用脚本:您可以创建流编辑器脚本以自动化复杂的任务。流编辑器脚本是包含流编辑器命令的文本文件。例如,以下脚本将所有 `a` 替换为 `b`,然后删除包含单词 "the" 的所有行: ``` !/bin/sed s/a/b/ /the/d ``` 要运行脚本,请使用以下命令: ``` sed -f script.sed input.txt ``` 使用变量:流编辑器允许您使用变量存储匹配的文本。例如,以下命令将所有 `a` 替换为变量 `old` 的值,然后将所有 `b` 替换为变量 `new` 的值: ``` sed -e 's/a/&old/' -e 's/b/&new/' input.txt ``` 流编辑器是一个功能强大且通用的工具,它可以用于解决各种文本处理任务。掌握流编辑器的基础知识将使您能够更有效率地编辑和处理文本文件。11个让你吃惊的 Linux 终端命令
我已经用了十年的Linux了,通过今天这篇文章我将向大家展示一系列的命令、工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我。
1. 命令行日常系快捷键
如下的快捷方式非常有用,能够极大的提升你的工作效率:
CTRL + U - 剪切光标前的内容
CTRL + K - 剪切光标至行末的内容
CTRL + Y - 粘贴
CTRL + E - 移动光标到行末
CTRL + A - 移动光标到行首
ALT + F - 跳向下一个空格
ALT + B - 跳回上一个空格
ALT + Backspace - 删除前一个单词
CTRL + W - 剪切光标前一个单词
Shift + Insert - 向终端内粘贴文本
那么为了让上述内容更易理解来看下面的这行命令。
sudo apt-get intall programname
如你所见,命令中存在拼写错误,为了正常执行需要把“intall”替换成“install”。
想象现在光标正在行末,我们有很多的方法将她退回单词install并替换它。
我可以按两次ALT+B这样光标就会在如下的位置(这里用指代光标的位置)。
sudo apt-get^intall programname
现在你可以按两下方向键并将“s”插入到install中去了。
如果你想将浏览器中的文本复制到终端,可以使用快捷键shift + insert。
如果你还不知道这个命令,我觉得你应该好好感谢我,因为如果你不知道的话,那每次你在输入长串命令后看到“permission denied”后一定会痛苦不堪。
如何使用sudo !!?很简单。试想你刚输入了如下命令:
apt-get install ranger
一定会出现“Permission denied”,除非你已经登录了足够高权限的账户。
sudo !! 就会用 sudo 的形式运行上一条命令。所以上一条命令就变成了这样:
sudo apt-get install ranger
如果你不知道什么是sudo,戳这里。
3. 暂停并在后台运行命令
我曾经写过一篇如何在终端后台运行命令的指南。
CTRL + Z - 暂停应用程序
fg - 重新将程序唤到前台
如何使用这个技巧呢?
试想你正用nano编辑一个文件:
文件编辑到一半你意识到你需要马上在终端输入些命令,但是nano在前台运行让你不能输入。
你可能觉得唯一的方法就是保存文件,退出 nano,运行命令以后在重新打开nano。
其实你只要按CTRL + Z,前台的命令就会暂停,画面就切回到命令行了。然后你就能运行你想要运行命令,等命令运行完后在终端窗口输入“fg”就可以回到先前暂停的任务。
有一个尝试非常有趣就是用nano打开文件,输入一些东西然后暂停会话。再用nano打开另一个文件,输入一些什么后再暂停会话。如果你输入“fg”你将回到第二个用nano打开的文件。只有退出nano再输入“fg”,你才会回到第一个用nano打开的文件。
4. 使用nohup在登出SSH会话后仍运行命令
如果你用ssh登录别的机器时,nohup命令真的非常有用。
那么怎么使用nohup呢?
想象一下你使用ssh远程登录到另一台电脑上,你运行了一条非常耗时的命令然后退出了ssh会话,不过命令仍在执行。而nohup可以将这一场景变成现实。
举个例子,因为测试的需要,我用我的树莓派来下载发行版。我绝对不会给我的树莓派外接显示器、键盘或鼠标。
一般我总是用SSH从笔记本电脑连接到树莓派。如果我在不用nohup的情况下使用树莓派下载大型文件,那我就必须等待到下载完成后,才能登出ssh会话关掉笔记本。可如果是这样,那我为什么要使用树莓派下文件呢?
使用nohup的方法也很简单,只需如下例中在nohup后输入要执行的命令即可:
5. ‘在’特定的时间运行Linux命令
‘nohup’命令在你用SSH连接到服务器,并在上面保持执行SSH登出前任务的时候十分有用。
想一下如果你需要在特定的时间执行相同的命令,这种情况该怎么办呢?
命令‘at’就能妥善解决这一情况。以下是‘at’使用示例。
at 10:38 PM Fri
at cowsay hello
上面的命令能在周五下午10时38分运行程序cowsay。
CTRL + D 返回终端。
6. Man手册
Man手册会为你列出命令和参数的使用大纲,教你如何使用她们。Man手册看起来沉闷呆板。(我思忖她们也不是被设计来娱乐我们的)。
不过这不代表你不能做些什么来使她们变得漂亮些。
export PAGER=most
你需要安装 ‘most’;她会使你的你的man手册的色彩更加绚丽。
你可以用以下命令给man手册设定指定的行长:
export MANWIDTH=80
最后,如果你有一个可用的浏览器,你可以使用-H在默认浏览器中打开任意的man页。
注意啦,以上的命令只有在你将默认的浏览器设置到环境变量$BROWSER中了之后才效果哟。
7. 使用htop查看和管理进程
你用哪个命令找出电脑上正在运行的进程的呢?我敢打赌是‘ps’并在其后加不同的参数来得到你所想要的不同输出。
安装‘htop’吧!绝对让你相见恨晚。
htop在终端中将进程以列表的方式呈现,有点类似于Windows中的任务管理器。你可以使用功能键的组合来切换排列的方式和展示出来的项。你也可以在htop中直接杀死进程。
在终端中简单的输入htop即可运行。
8. 使用ranger浏览文件系统
如果说htop是命令行进程控制的好帮手,那么ranger就是命令行浏览文件系统的好帮手。
你在用之前可能需要先安装,不过一旦安装了以后就可以在命令行输入以下命令启动她:
在命令行窗口中ranger和一些别的文件管理器很像,但是相比上下结构布局,她是左右结构的,这意味着你按左方向键你将前进到上一个文件夹,而右方向键则会切换到下一个。
在使用前ranger的man手册还是值得一读的,这样你就可以用快捷键操作ranger了。
9. 取消关机
无论是在命令行还是图形用户界面关机后,才发现自己不是真的想要关机。
shutdown -c
需要注意的是,如果关机已经开始则有可能来不及停止关机。
以下是另一个可以尝试命令:
pkill shutdown
10. 杀死挂起进程的简单方法
想象一下,你正在运行的应用程序不明原因的僵死了。
你可以使用‘ps -ef’来找到该进程后杀掉或者使用‘htop’。
有一个更快、更容易的命令叫做xkill。
简单的在终端中输入以下命令并在窗口中点击你想杀死的应用程序。
那如果整个系统挂掉了怎么办呢?
按住键盘上的‘alt’和‘sysrq’不放,然后慢慢输入以下键:
这样不按电源键你的计算机也能重启了。
11. 下载Youtube视频
一般来说我们大多数人都喜欢看Youtube的视频,也会通过钟爱的播放器播放Youtube的流媒体。
如果你需要离线一段时间(比如:从苏格兰南部坐飞机到英格兰南部旅游的这段时间)那么你可能希望下载一些视频到存储设备中,到闲暇时观看。
你所要做的就是从包管理器中安装youtube-dl。
你可以用以下命令使用youtube-dl:
youtube-dl url-to-video
你可以在Youtubu视频页面点击分享链接得到视频的url。只要简单的复制链接在粘帖到命令行就行了(要用shift + insert快捷键哟)。
总结
希望你在这篇文章中得到帮助,并且在这11条中找到至少一条让你惊叹“原来可以这样”的技巧。
五个Linux简单命令帮你解决系统性能问题
事实上,利用一些简单的Linux命令,可以发现许多管理主机的细节问题并且能迅速而简单地解决性能问题。
一、top
对许多管理员来说,最新学会的就是TOP命令,它可以显示出当前运行的所有内核任务,并且提供了一些主机状态的统计报告。默认地,TOP命令每隔五分钟自动更新一次这个数据(这个更新间隔是可设置的)。
TOP命令的功能丰富到令人难以置信(估计很少有人使用过一半以上的功能)。一般来说你会以‘h’键开始,就是‘help’(说明文档也非常精彩)。帮助参数可以快速显示出你能从中增加和减去的内容,同时也可以改变排序。你还可以用k来结束进程或者用r标注特别的进程。
Top命令显示当天的正常运行时间、系统负载、处理器的数量、内存的使用率和哪些进程使用了大多数CPU资源(包括每个进程的大量相关信息,例如在线用户和正在执行的命令等)。
二、vmstat
Vmstat命令提供给你一个当前CPU、IO、进程和内存使用率的快照。和TOP命令一样,它自动动态刷新,并且可以用下面的命令执行:
在这里延迟是指两次刷新间隔的以秒为单位的时间,这里是10秒钟。VMSTAT命令会将检查的结果不停刷新显示在屏幕上,直到你用CTRL-C命令结束它(或者你也可以在执行的时候设置一个限制)。这个持续输出的结果有时候被用来导入到文件中用来分析性能趋势,但是我们将找到更好的方式来做这件事情,在文章后面的部分会介绍。
第一列显示的是处理器, r列是待命的处理器,而b列是休眠的处理器。如果你在这里看到好多个待命的处理器,那说明你可能在某个地方遇到了性能瓶颈。第二列显示的是内存:虚拟的,空闲的,缓冲和缓存内存。第三列显示的是交换存储以及具体有多少内存在和磁盘做交换。第四列则是I/O信息,显示了块服务接收和发送的块数据信息。
最后两列显示了系统和CPU相关的信息。系统列显示的是冲突的数量和每秒钟的交换。CPU列是显示了特别有用的信息。每个分列显示了一个CPU时间的百分比。这些分列如下:
US:运行用户任务和代码耗费的时间
SY:运行内核或者系统代码耗费的时间
ID:空闲时间
WA:等待IO耗费的时间
ST:虚拟机占用的时间
VMSTAT命令擅长用来查询CPU使用情况,虽然记住每个参数主要取决于持续的监控,因为对CPU进行短时间的观察你可能无法获知CPU真正的问题所在。你需要查看长期的运行趋势来获得一个确切的CPU性能信息。
三、iostat
我们接下来要讲的命令是IOSTAT。IOSTAT命令(在UBUNTU、红帽和FEDORA系统中都是由SYSSTAT软件包提供的)可以提供三个报告:CPU使用率、设备使用率和网络文件系统使用率。如果你不加任何参数地运行该命令,它会显示所有这三个报告,你可以通过加参数-c、-d和-h来单独显示它们中的一种。
第二个报告是关于设备使用率,显示了安装在该主机上的每个设备和一些有用的信息,诸如每秒传输量、数据块读写,并且允许你对有性能问题的设备做标记。你可以通过添加-k或者-m参数来按照千字节或者兆字节显示统计信息,而不是以数据块为单位,这样在某些情况下会更便于查阅和理解。
最后一个报告,没有截图,显示的信息和上面介绍的设备使用率有点相似,只是对象从附件的设备换成了挂载的网络文件系统。
四、free
下一个命令free,可以显示主内存和交换内存的统计量。
你可以通过添加-t参数来显示总的内存,或者通过添加-b参数和-m参数来用字节数显示(默认情况是用千字节为单位)。
FREE命令还可以通过使用-s参数来使其以某个间隔时间持续刷新地运行:
这个命令是以每隔5秒钟刷新一次的方式运行FREE命令并输出结果。
五、sar
象我们见过的许多其它工具一样,我们可以用sar命令来收集、查看和记录服务器的性能数据。它比我们见过的任何类似工具都更强大,并且可以收集和显示长时间段的数据。在红帽和UBUNTU上,它通过SYSSTAT包来安装。让我们从不添加任何参数运行SAR命令开始吧:
从这里我们可以看到sar命令的基本输出信息,包括CPU统计(每隔10分钟一次的数据和最后的平均数据)。该信息是从一个以24小时为单位不停收集信息的日统计文件中抓取出来的(这个文件存储在目录/var/log/sa/中,并且被命令为saxx这样的格式,xx代表该数据收集的日期)。另外它还收集关于内存、设备、网络等的统计信息(例如,通过加-b参数可以查看块设备统计信息,-n采查看网络数据,-r参数看内存使用)。你还可以用-A参数来查看所有收集的数据。
你还可以长时间运行sar命令然后将输出数据导入一个文件中来收集数据。要达到这个效果,需要使用参数-o和一个文件名称,要运行该命令的时间间隔(记得收集数据会导致性能变差,所以最好确保这个间隔不要太短)和循环的次数-你要记录的间隔次数。如果你不输入循环次数,则sar命令会一直运行下去,例如:
$ sar -A -o /var/log/sar/ 600 /dev/null 21
这里我们将收集所有数据(-A),记录到文件/var/log/sar/中,每隔600秒(或者5分钟)收集一次,持续在后台运行。如果接下来我们想要显示这个数据我们可以用sar命令加上-f参数,例如:
$ sar -A -f /var/log/sar/
这是一个非常基本的sar命令介绍。用sar命令还可以得到许多很有用的数据,这能使得查看主机性能变得更加方便和有效。我建议你去查看一下sar命令的说明文档从而获得更详细的方法来获得你需要的数据。
总结:
我们看到了5个基本的用在linux主机上管理和查看性能状态的命令工具。
除此之外,去看一下其它一些工具如munin和collected等也是非常值得的,它们不仅收集关于性能的数据,还能查看应用程序和服务等,包括使用你自己的插件等。
这些工具都支持增加图形化的输入,这样可以让你用图形更直观的查看你的数据。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。